|
|
Professional Sports.
While I was looking for a new employer over the last year, twice I was pitched jobs for Major League Baseball teams that needed F# developers. I did some research on it and found troves of data sets available spanning decades of time.
Now I know where all those worthless statistics come from when announcers are trying to find something interesting to say when there is a lull in the game.
Director of Transmogrification Services
Shinobi of Query Language
Master of Yoda Conditional
|
|
|
|
|
MadMyche wrote: Major League Baseball teams that needed F# developers.
Why F# though, versus C#? What does F# give MLB that C#/Java could not?
|
|
|
|
|
Well it's the functional aspect of it that, supposedly, makes it more useful for working with extremely large datasets.
One morning I shot an elephant in my pajamas. How he got in my pajamas, I don't know.
|
|
|
|
|
In addition to Slacker007's post, there's this interesting (academically speaking, I suppose) article I wrote recently.
Mel Padden wrote: Like many others, I found it very interesting when it first came out, but never really found a compelling application for it, and there don't seem to be many F# jobs around so...
Along with Scala and Haskell, I've heard it's used in the financial industry. It's a good language to learn because I found it influences, in a positive way, my C# coding, particularly looking at how mutability is handled.
The company I left a while back was re-implementing all their ATM code in F#, mainly because the new kids on the block (spurred on by the CTO that hated C# because he didn't understand it) thought what I'd done in C# was too complicated. Funny they chose F#. Well, they would have chosen Python (because the CTO loved Python) but they couldn't use Python because the Chromium support sucked.
At the end of the day, to repeat stuff I've written about F# previously, the world is mutable, so programming in pure immutable FP is a real PITA. Tail recursion, monads, etc. Ugh.
Given that, what you end up with in F# often looks like an imperative code square that's been shoved into a declarative code circle. That's certainly what the new kids ended up with, from what I saw before I left. OK, so they implemented communication streams in F#. Big whoop.
Plus, getting anyone (like your teammates) educated in any FP syntax is daunting, nay, impossible.
|
|
|
|
|
Marc Clifton wrote: an imperative code square that's been shoved into a declarative code circle. Wonderful !
«While I complain of being able to see only a shadow of the past, I may be insensitive to reality as it is now, since I'm not at a stage of development where I'm capable of seeing it. A few hundred years later another traveler despairing as myself, may mourn the disappearance of what I may have seen, but failed to see.» Claude Levi-Strauss (Tristes Tropiques, 1955)
|
|
|
|
|
|
I've been using F# almost since it came out. Initially, I was using it to simulate performance of large government pension funds. Lately, I've been building an infrastructure to allow me to build simulations of adaptive social systems.
In terms of coding style, I find myself combining object-oriented and functional styles in the same programs, the object-oriented for interfacing with .NET/WPF types, and the functional where it seems natural.
There are several things I really like about F#. First, it allows me to fit a lot of computation into just a few lines of code: No pages of curly brackets and semicolons. Second, I don't feel straight-jacketed into a particular coding style; I can use what is appropriate in the circumstances. Third, it is relatively free of arcana like annotations. Fourth, you don't have to know everything to do anything. And fifth, the combination of Visual Studio and the F# interpreter rocks!
I hope this is helpful.
|
|
|
|
|
I use F# for everything I can without getting in trouble. (I'm supposed to be using C#.)
It has many features that make common programming operations easier, but that are not available in many mainstream languages (including C#), for example:
- Automatic type elision (C# has this with var keyword, but in F# it's somewhat more powerful and can identify function types, etc)
- Discriminated union types (i.e. a value that can be either THIS or THAT, but not both)
type GameResult =
| Winner of playerName: string
| Stalemate
- Record types - easy copy-and-update syntax and automatic structural comparison
let youngBiff = { Name = "Biff Tannen"; Age = 18 }
let oldBiff = { youngBiff with Age = 73 }
youngBiff = oldBiff
It's also great for scripting. You can easily run and test individual code lines, functions, etc. in F# interactive.
It is definitely multi-paradigm -- it's "functional first", but I also prefer writing OO and imperative code in F# because of features such as the ones mentioned above.
I wish F# would supplant C# (or at least gain parity) as the premier .NET language. I don't think there's anything C# does better (except this). But alas, it seems like we're more likely to see C# slowly turn into F# with curly brackets, semicolons, and superfluous type definitions.
|
|
|
|
|
xkcd: Logical[^] - I say nothing. Especially after a visit to QA.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
QA, where logic beg....ends
Rules for the FOSW ![ ^]
if(this.signature != "")
{
MessageBox.Show("This is my signature: " + Environment.NewLine + signature);
}
else
{
MessageBox.Show("404-Signature not found");
}
|
|
|
|
|
QA: where knowledge goes to die.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Stop crying. You probably hired some company to post these deliberately dorky questions, so that you guys can pounce on them.
I am endeavoring, ma'am, to construct a mnemonic memory circuit using stone knives and bearskins.
|
|
|
|
|
Circuit Cake[^]
I want that!
What do you get when you cross a joke with a rhetorical question?
The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism.
Do questions with multiple question marks annoy you???
|
|
|
|
|
|
Diode, could you not resist a good cake?
|
|
|
|
|
That is the current thinking. I don't personally have the capacitor to think of any puns, though...
|
|
|
|
|
You've led me to think we could register more pun. Thank you for being the inductor of puns here.
modified 12-Oct-17 19:45pm.
|
|
|
|
|
I think I'd take a Megabyte!
Anything that is unrelated to elephants is irrelephant Anonymous
- The problem with quotes on the internet is that you can never tell if they're genuine Winston Churchill, 1944
- I'd just like a chance to prove that money can't make me happy. Me, all the time
|
|
|
|
|
|
Your oven, a few ingredients and a little time.
Don't tell me you are helpless in the kitchen.
I am endeavoring, ma'am, to construct a mnemonic memory circuit using stone knives and bearskins.
|
|
|
|
|
Far from helpless in the kitchen,
time is the issue...
|
|
|
|
|
Perhaps we could do something incredibly nerdy, like printing it with a food printer and using a real schematic.
I am endeavoring, ma'am, to construct a mnemonic memory circuit using stone knives and bearskins.
|
|
|
|
|
The City Of Munich has determined that it was a big mistake to go Linux:
Ditching Windows for Linux led to 'major difficulties' says open-source champion Munich - TechRepublic[^]
My experience has been that Linux and its family is a PITA to work with. That said, I did find use for a Linux tools that allowed me to repartition the main drive (I was replacing the OEM Windows 8 with Windows 7) and also copy stuff off of another hard drive that was removed from its system (i.e., the old system's display was busted, and I didn't want to spend anymore on that old system, but I wanted to keep some personal files). But in terms of using Linux as a day to day OS, NO WAY!
|
|
|
|
|
With MSFT giving windows away, where is the cost benefit to Linux?
However, with the Munich council, perhaps they are victims of bad advice or bad maintenance?
Linux is a haphazard system, because no one 'owns it'. No one takes responsibility for marketing it, it is left to a developer to tune it to a particular environment, hence it ends up highly customised and non standard, used in applications like settop boxes, payment terminals, or hand held device. Look how successful Android is for example, or the fact you use a Linux OS to pay by credit card, Verifone devices use Linux now, and they have pretty much the entire market in the western world.
But, would I roll it out across a company for desktop use? Dont know. I dont know enough about it in hose situations to say.
|
|
|
|
|