Inside Microsoft's New F# Language
robyn217 writes "There's a new language being formed in the bowels of Microsoft. Recently I got word that the language F# (pronounced F Sharp) is nearing workable stages at Microsoft Research. So, I went in for a look-see. What I found was an interesting blend of imperative (Java, C#) and functional languages(it's ML-based, too!). It looks pretty enticing to me from a computer science perspective, but I'm not sure it would fly in the professional market. I can see the ease of development that a language loosely based on ML would bring, but I can't see coders switching over in droves since it's a tough learning curve." Our previous story on F#.
F#ing Visual C++
F#ing VB.
F#ing Win32 API
It's OCaml for the .NET CLR. Not a new language. Nothing to see here. Move along.
"nearing workable stages at Microsoft Research"
:)
What a softball on a Slashdot story. I bet
21 joke made with reference to this phrase
Let's watch and see
---"What did I say that sounded like 'Tell me about your day?'"---
F-pound?
F-sharp?
F-UD?
Sheesh. Don't we have enough languages already? I thought C# was the absolute savior of the MS-centric tech world.
Just learn how to program in one language before you hit another one.
This space for rent.
I knew that someday Fortran will make its comeback and becomes the all mighty programming language !!!
#include "coucou.h"
I usually use an F#-word or two when dealing with one of Microsoft's programming languages. This is great for marketing "See, everyone's shouting praises of F(sharp)!".
Sometimes I doubt your commitment to Sparkle Motion.
A microsoft rep met with us a couple of weeks ago pushing .NET, win2k3, the whole enchilada. He mentioned they have MANY of these languages in development and are due to be released in the next year or so. They will still be pushing C# for mainstream development. The other languages will focus on niches where a modern OO language would be cumbersome.
;)
He wouldn't confirm whether they would have the X# naming convention
Heh
In the UK we call that square thingy a hash
Do you think C hash has done well here :-P
Will F hash do any better?
(Or does "making a hash of it" get lost in the translation?)
Anyone quoted by a reporter knows how little they understand
Don't believe what you read is the truth.
When developing for windoes "Microsoft F#&%", or "F#&%*!? .net" is the most common language our team uses.
Offtopic, Inflammatory, Inappropriate, Illegal, or Offensive comments might be moderated up.
Do you relize that an F# major has 6 sharps.
But, an F# is the same as a Gb (G flat) which has as 6 flats.
Now the C# scale has 7 sharps, but it's the same as a Db (D flat) which only has 5 flats.
Most people think (D flat) instead of C#.
F# is a very bright scale. It sounds very nice on an Alto Saxophone, whereas the C# scale is a little more moody, depressed.
Maybe Microsoft is trying to back off the use of C#.
Our company has recently started to introduce .NET development alongside our core J2EE platform. One of the issues that has come up has been how useful the multi-language/single-platform support would be. Rather than taking a "best of breed" language for all development, the use of the right tool for the right job could potentially lead to interesting results - A mix of C#/ML/PROLOG/etc. as appropriate for the immesdiate task at hand. I don't think MS is far enough down the road yet to capitalise on the idea, but it's certainly an intriguing possibility - Even if it would lead to a maintenance nightmare :)
Oh, the jokes that this will bring. Just goes to show you that, if nothing else, Microsoft is good for a joke or two.
It's all fun and games until someone loses the key to the handcuffs.
Map then applies whatever function we pass in to every member in the array (called a list in functional programming).
So, all you functional programmers, remember... a list is just another name for an array :-P
Seriously, though... I was discussing the future of programming languages with some friends and we agreed that a real step forward would be to provide features such as higher order functions in a mainstream language... could this be it?
If so then it's a little worrying... I'd rather not see any revolutionary languages come out of MS, if at all possible...
(Cambridge's Computer Science degree teaches ML followed by Java in the first year... would they switch to teaching just F# if it became popular?)
is it just me, or is Microsoft having their own little inflation in languages? In the 'good old days' there were fewer languages, and a developer could use time to learn them, getting good at it. with microsoft's Visual Basic, some versions differ more than Pascal and C, then comes C# and now F#? What's next? After they're done with C,C#,D,D#,E,F,F#,G,G#,A,A#,B, perhaps the arabic scale will do... I'll stick with Q-Basic
Computers are like air conditioners.
- They stop working when you open Windows.
My first year CS classes were taught in ML. It's a very potent language. I especially liked the type inference system. What other languages do in templates comes naturally in ML. Our CS prof gave us an example of Quicksort in 3 lines of readable code. As an academic language ML has problems interfacing with real life systems. OcaML was a step in the right direction and MS is building F# on it. I'll certainly try this one.
and functional languages(it's ML-based, too!)
Good I'm a big fan of Marxist-Leninst programming languages.
I wonder if F# has any relationship to the "ML for Microsoft" (I forget the name) efforts from Harlequin Software a few years ago? ML has always seemed an ideal fit for many single-user RAD developments, it just needed an appropriately stable, complete, clearly specified component library and professional quality IDE in order to reap productivity benefits over Java/C# et al.
F# will be learned by people when managers and not university lecturers decide that it is something that coders need to learn or even when coders decide it's necessary for something.
Stop thinking that the world is out to make you use MS products no matter what. The businesses that do the employment and the people who should be advising them (cough -you- cough) are the people who make those decisions.
Anyone learning Computer Science should in no way be gearing themselves with any particular product
Any university offering courses in computer science is doing students a dis-service if it sends them out of the institution without an MS-centric, Linux-centric or any other square peg solution to fit any hole they come across.
I always thought the aim of education and particularly any discipline that considers itself a science was to teach skills and thinking which could be applied across the field so the graduates would find themselves able to adapt to any language or equipment that they found it necessary to use.
Maybe they will start using Symbols like in Super Mario Brothers :)
<end/>
If they can patent/trademark/copyright all the notes used in music, they will be able to own the RIAA.
The have: C#,F#
Left: A,A#,B,C,D,D#,E,F,G,G#
Can't wait for the other 10 programming languages
from the g-flat dept. ?
*Twitches at the thought of his 8 years of Music Theory classes*
Which is Exactely what they teach us at Bournemouth University
"lack of quality control is one of the pillars of slashdot"
in a Java-like language ...
Get over it. He's just trying to convey the idea, not show you a working example of a piece of code in a particular language.
-jacob
I don't buy this for a minute. There's tons of comp sci programs that never even made the switch to Java as their "learning" language. People will learn what the job market dictates. There will ALWAYS be a need for COBOL and C programmers and I think that Java has, sadly enough, become ubiquitous enough that we'll always need Java programmers.
You'll lose your job if you only know a handful of trendy technologies and nothing more. If you know some languages that are passsing into the "legacy" category, you're better off.
And, you know, I've been working for a very large financial institution for 2.5 years. I've seen no sign of C# anywhere. Going to the programming racks at Borders would make you think differently. I honestly think there's more C# books out there now than all other programming language books put together. It's amazing.
No, they'll go A through G, then start making chords and arpeggios.
If you can't see the value in jet powered ants you should turn in your nerd card. - Dunbal (464142)
... the drive letters team is (still) working this one out.
ADD ONE TO COBOL GIVING COBOL
Better fuckin' not. I'll sue them for stealing my variable naming convention.
Maybe the idea is that since you can use all of the .NET languages in the same project, you can do the things that a functional language are good for in F# and the rest in C#.
1. Damn... I gotta start using those funky preview buttons.....
2. uuhuuuuuuuhh... Unfortunately, I don't remember anymore what the second one was about.....
You're right.... my fault.... sorry.
PS: That's the last time I'm not previewing....count on it;o)
1. No sig. 2. ???? 3. Profit!!!
the drive letters team is (still) working this one out.
haha! Very good
Trolling is a art,
Which only goes to show how much cleaner mapping functions to lists is.
map (fun x -> x*x) list
I Browse at +4 Flamebait
Open Source Sysadmin
With a title like "Inside Microsoft's New F# Language" I was looking for the big foot, but I guess this really isn't a joke...
Laugh at stupidity: mod idiots +1 Funny.
Microsoft is saying that a product of theirs is nearing workable status, thats an april fools joke in my world.
Perhaps it's april fools day in redmond now?
Why can't Microsoft call it F Octothorpe? (Look up octothorpe in the dictionary if you don't know what I am talking about)
rm -rf sig
In newer versions of
Now the job postings will read: must have five years exp. in f# rather than: must have five years exp. in c# just when I was getting my 10 years exp in Java that they also require...
Not really. F# and g form a dissonance, called a minor second. It happens though that I like g-f#, a major seventh. But maybe a listen to too much contemporary music.
I have to hand it to M$ to come up with yet another cute two letter abbreviation that doesn't pertain to anything! Let's look back and reflect... NT, (2K?), (VB?), XP, C#, F# ? I'm seeing a trend towards this... at this rate they will use up all possible character combinations by the year 2154! ([26+1]*[26+1] : 26 for all alahabet chars and +1 for the '#' symbol)
It's definitely not pound, not hash maybe sharp but really, it is octothorp.
I know, AWT->SWING and a bunch of other examples, but a CORE PART of Java does not change. It remains the same as much as possible, in regards to the API.
MS goes ahead and changes things completely every few years. Java, for the most part, does NOT require tons of relearning. The API's are there if you need them, but a majority of them do not change. They might get "cleaned up" a bit, or a few deprecated here or there, or in my opinion a few too many may be created to do the same task, but if you could knock up a Java prog years back, it's the same way today for the most part. SIMPLE.
I certainly wouldn't hire an insecure prick for any job. Especially if he was so insecure he was grasping for straws as to why he wasn't succeeding. You think because someone doesn't speak english without an accent they're stupid? How's your hindi?
It's not wasting time, I'm educating myself.
Are C# and F# the two notes that make up the theme to Jaws?
It's thinking like this that has made Windows the stable, long-haul product it is today.
-----
What has a two-year lifespan? Rats and Windows.
Hopefully it will go the way of modula-2 (which I was required to take in college in the early 90's)
A rehash of C?
Click here or a puppy gets stomped!
Ocaml doesn't get nearly the attention it deserves. I'm especially surprised it hasn't taken off more in numerical computing (although it is fairly young). Functional, object-oriented, all those good things, with the speed of C/C++. Very compelling.
Go check it out if you haven't already. I'd really like to see ocaml be more widely used, especially over some copy from MS.
Ok, if they had to continue with this silly "sharp" naming convention they could have at least done something on the geeky side and called it B#.
Of course, a lot of the people wouldn't get it, but those of us that do would be wondering if it was deliberate or just a coincidence?
I must admit it is much more difficult to search my 3l1t3 h4x0r 0-d4y w4r3z s1t3s when the products from M$ are .NET and C# and XP and ... (to be continued ...)
The only time I read a # as "sharp" is when it is on a musical staff ie five parallel lines. Otherwise it is a hash as in #5 for number 5 or please press the hash key on the phone.
hash definitions
Of course when ever I see F# and Micro$oft together I read F#$%
The description reads like F# is OCaml on hash ie dumbed down.
-- it must be true, it's on the internet.
Perl has a fairly steep learning curve to really use the language. If it's good enough, they will use it.
"Not knowing when the dawn will come, I open every door." - Emily Dickinson
There are three levels to programming.
The first is for the silicon scrapers. Guys who write device drivers and who are amply served by assembler (for the real propeller-head bit-twiddlers) and and by C (Not C++, C) There is no sense of reality at this level.
The second level is for the tool makers. The guys who bring you APIs and services like TCP/IP, Tuxedo, database managers, OpenGL, compilers, browsers and the like. Those folks use C++ and Java. Its a mistake to think that you can make an application in C++ or Java or Smalltalk. You can cobble something together that will cost too much and be too brittle for real-world use and eventually break (or break the bank.) The world becomes real.
The last level is integrative. There aren't any languages which assimilate the concepts which programmers are confronted with in the real world.
The best we have to date is sort of the second and a half level with languages which, with the support of a whole bunch of other third party systems (both code and manual procedures,) are sort of capable of some mimetic link between soma (the code) and extro (the specs.) (Sort of like CICS COBOL on mainframes.)
From what I saw, F#, uh, isn't. Its better but still, its like C++, ObjectiveC or Smalltalk or any other container based language where contained objects have no clue that they contained unless the programmer creates and maintains explicit references to the container.
The flaw starts there and gets carried forward.
And computing is so fundamentally simple. Its a game of N-Dimensional topology bounded by finite vectors in every dimension. There's no mystery involved. You just need to maintain a meta-model of the system and you can generate the rest.
What do you think programmers are and what do you think they're doing? They're code generators that fetch their own meta-model. Some do itbetter than other and some such at code generation too.
MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
They'll be suing people that have been dead for many hundreds of years for using C# D# F# G# in their musical scales.
I strongly suggest that Microsoft stick to making operat...(um), office pro..., (no thats not it...), web brow...(nope), how about video game...(nah)..., programming platfor...(not it either)...
100% Insightful
Same thing they do every night, Pinky. Try to take over the world.
You mean they solved the drive letters problem ?
for the last time people, I am "frodo from middle eaRTH", not "middle eaST".
Another option for ML-ish languages is the Standard ML compiler for .NET CLR: SML.NET. It implements SML 97 with similar language interoperability.
Am I the only one, who thinks about Brain F#$%@ while reading about "Microsoft's New F# Language?" But seriously, I think Fis is quite an interesting language (even if not quite so as, say, Perl 6 is), but it will need lots of marketing to push C and C++ out of the OO market, which will be difficult as h*ll, even for Microsoft. Even if everyone in proprietary software industry switches to Fis, there will still be enough C in free software projects to consideribly slow the deployment. But it was still quite an entertaining reading, even if it hasn't provided any outstanding insight. Robyn Peterson's articles have never disapointed me, however this time I feel a little bit bored. I guess I was expecting too much from Microsoft language development people, but on the other hand, how far could they possibly go, with all this legacy backward compatibility? I think they have done quite a good job this time, considering it's Microsoft. Who knows, I may even write some of my new projects in Fis. I hope it will be supported by GCC soon enough.
Karma: Positive (probably because of superiour intellect)
If your program contains both F# and C# code, then you can call it D Major. Detractors can call it b minor.
F# looks like OCaml. You can have a look on the libraries already present for this fabulous language on the hump http://caml.inria.fr/humps/index.html
Now when people say "F Microsoft" they can be sued for trademark infringement. Way to stifle dissent, MSFT!
You see? You see? Your stupid minds! Stupid! Stupid!
Microsoft says it:
F#ism is finally back in F#ion.
I guess this means all Microsoft programmers are F#ists.
Oh well, they're only in it for the C# anyway.
However, this language seems to be presenting a danger; it may be a good idea to reduce complexity, but inventing new languages to do it may or may not be the best way to do it. Can you imagine inventing a new language every time you run into something that seems simple but is actually complicated?
Perhaps I'm wrong, and F# solves all our problems, but I have large doubts when Microsoft (especially Microsoft) starts touting a new language as making things "simpler." I'll definately give the language a try when it is released though.
And computing is so fundamentally simple. Its a game of N-Dimensional topology bounded by finite vectors in every dimension. There's no mystery involved. You just need to maintain a meta-model of the system and you can generate the rest.
Christ, if that's simple, I'd hate to hear you describe complicated.
"doing students a dis-service if it sends them out of the institution without an MS-centric, Linux-centric"
... C++ was not yet taken seriously although it's now my personal fav. It would be interesting to go back and see what they're teaching these days. Reality is that the "old" way taught you how to devise solutions. It would be sad to think that the "new" way is to focus on implementing solutions. You'd imagine it's in software companies interests (one in particular comes to mind) to push universities to focus on teaching implementations since it essentially creates virtual sales reps for their products on graduation.
You mean with not without right?
Back in the day they taught methodology and standard languages, namely Assembly, C, Cobol, and Pascal
Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
Until today, both ML and Haskell had a common problem: a lack of commercial and real world interest in it and therefore a lack of real-world libraries and supporting frameworks. But now things are going to be changed.
First Ericson came with Erlang, an excelent essence of FP, LP, scripting and networking. Now M$ (I know - evil, but anyway) came with F# bringing OCaml to the real world saving from being forgotten somewhere in Inria.
What next? I think that would be Haskell, the language even more suprior to ML, with already OOP, Parallel and Cuncurrent extensions. Also I like its Functional-Logical dialect - Curry. But who will bring it to the real world? IBM?
Less is more !
Which language would you try and compile it under? The author doesn't specify which language it's for; he just specifies "Java-like". The example is more in the nature of pseudo-code than real code. He's demonstrating a methodology, not an implementation.
Anyway, I definately enjoy reading critical comments from people so knowledgable(to read: arrogant) that they don't bother reading their own quotations.
Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
So, is it "F-sharp", "F-octothorpe", "F-pound", "F-number", or "F-tic-tac-toe"?
One thing I know for certain: "F--- Micro$oft"!
Hash by any other name would probably still get you high...
"Obviously, I'm not an IBM computer any more than I'm an ashtray" (Bob Dylan)
the example wasn't intended to compile. It was there for illustration purposes only...you know, to get an idea across.
he even said as much:
in a Java-like language
I'm not a nerd. Nerds are smart.
They've developed some real crap in the past, but at least they're honest about the origins of this one.
Good programmers choose C, C++ or java and stick to it for the rest of their lives
Actually, no. That's lazy programmers.
Real good programmers know that programming languages are just tools. For every task, there are many tools you can use; some are better than others. By using the same tool for every task, you are doomed to use an inefficient one in some cases.
Ich werde nie wieder denken
You want me to do the "Dance of shame" or what???? I've already stated that this was a mistake, and as far as I recall, I've done it about 5 minutes after the initial posting(=>before being moderated))... Lucky you if you don't make any mistakes.....
1. No sig. 2. ???? 3. Profit!!!
That would be sweet -- learn ML or lose your job. That's a vision of my ideal world. Learn a decent language like ML or get fired. Beautiful. That would separate the programmers from the code monkies. But there's no need for you to be anxious -- the chance of that happening is zero.
track7.org has all kinds of interesting stuff!
F#C# that shit...F#ing Visual F#C# is the way to go!
Moderation: +4. Modded 70% Funny and 30% Overrated. 100% Saturated.
My vote is for "C++ ungood".
Obliteracy: Words with explosions
C isn't as portable as perl, python, php or java. C and C++ suffer from either incomplete or random interpretations of the specifications.
perfect example is TurboC and that stupid conio.h file. I came to the unix worled after learning TurboC and was confused for months until i learned what ncurses was.
*grumble*
-
ping -f 255.255.255.255 # if only
I prefer the key of C - no sharps, no flats, and the easiest to play (at least on the keyboard)!
"He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
Don't forget when you ran out of symbols. Game just ended :)
-
ping -f 255.255.255.255 # if only
MS doesn't give a shit about C#, they care about .NET. Pretend that .NET is the Win32 API and you'll see what I mean. They don't care what language you use, they just want you to target Win32. In the future, they don't care what language you use, they just want you to target .NET. Simple.
Can explain why Haskell and ML arn't being used outside of research? The benefits over imperative programming are quite significant.
Are there some major drawbacks that I am not seeing?
C isn't as portable as perl, python, php or java
Perl, Python and PHP are not suited to the same problem domains as C. Java is portable only to systems which have a full JVM, and then your success depends on the version of the JVM available and wether you are using AWT or Swing. If you use any JNI at all then your code is just as portable as C.
perfect example is TurboC and that stupid conio.h file.
Try sticking to the standard? The latest C standard was approved in 1999 (C99), or if you need to be compatable with older compilers there is still plain old ANSI C (C89). Both are perfectly portable if you stick to the C library (Which applies to Java just as much). If you're targetting a POSIX platform then your code is portable across that, too.
My point is that there is nothing special about the portability of Java when compared to other languages.
Yup sounds like crap alright.
Eat at Joe's.
They did claim theyve learned alot from Linux's loyal developer community, they obviously lied.
No, no, no... You have it all wrong. They have learnt that once people migrate to Linux they never come back, so to stop that they get their existing developers to switch to a new language that you cant use in Linux.
So once everyone is using F#%$! or whatever, and has forgotten how to program in good old C++, they wont have any more defectors and therefore no more problem..
This post is totally off topic and full of hateful, xenophobic, and racist rhetoric.
An insightful mod is totally inappropriate.
You think too much.
You can't win Darth. If you mod me down, I shall become more powerful than you could possibly imagine
They tried to call it P# but the message kept getting filtered ;-)
boom boom
sparkes
blog and junk
but if the square peg is big enough, you can always mill it down to fit the round hole... hmm...
i sell illegal drugs
There's a new language being formed in the bowels of Microsoft.
This may help explain Microsofts process for developing new software. How are things "formed in the bowels" anyway? A simple understanding is that good stuff is essentially chewed to pieces and then deconstructed in an acidic bath. Once the good stuff reaches the bowels then an attempt is made to remove everything that is of value. Once that has been accomplished we are, I suppose, left with a Microsoft product that is ready to (careful here now) ship (Whew! Now that was one major Freudian slip just waiting to happen....).
--
As a matter of fact, I am a lawyer. But I play an actor on TV.
"Perhaps it's april fools day in redmond now?"
Dam that windows automatic daylight saving routine!
sparkes
blog and junk
> Removing math from the computer
> science curriculum is akin to removing
> the seatbelts from one's car.
> The car may still appear to work,
> but deep down, it's inherently flawed.
Er... how's that again? A car without a seatbelt is inherently flawed?
tom
The Army reading list
Seriously, it sounds like a great idea, but I'm afraid I won't be able to use it due to fears of being stuck up a creek without a license, or without a compiler for Linux, etc.
Functional languages (such as ML) have some very powerful features lacked by C++,C#,Java,etc. The ML module system rocks, and so does its handling of polymorphism. I've been waiting for years for someone to hook it up with a practical library and development environment so I could use it for real work.
Christ, if that's simple, I'd hate to hear you describe complicated. :-(
Reality. It's reality that's complicated. Algebraic topology is simple. As simple as it can be. It's the real world that's complicated. Doesn't mean I'm capable of understanding it though
id hoped to bury those horrid memories of recursion and pattern matching just to loop... *sob*
i sell illegal drugs
A new language from Microsoft, STF#U!!
If I had something intelligent to say, I would have said it.
Stop thinking that the world is out to make you use MS products no matter what.
It's not the world I'm worried about, just Redmond.
Where have all the talented white men gone?
Thankfully they're now working alongside talented women and "non-white" men.
Okay, I have to agree with you that there has been a drastic decline in the last ten to fifteen years of the number of people in the field who would be considered old-school "hackers" -- the kind of guys who created these systems that people now think they're eleet for using.
But what the HELL do you mean by "Where have all the talented white men gone?"
That racist shit got moderated up to +4?
The second level is for the tool makers. The guys who bring you APIs and services like TCP/IP, Tuxedo, database managers, OpenGL, compilers, browsers and the like. Those folks use C++ and Java. Its a mistake to think that you can make an application in C++ or Java or Smalltalk. You can cobble something together that will cost too much and be too brittle for real-world use and eventually break (or break the bank.) The world becomes real.
I take issue with this. I have designed and implemented apps in both C++ and Java that were flexible enough that we were able accommodate unexpected customer requests. And they didn't break the bank, considering their feature set.
Funny. I remember a time when folks used to believe that Java and C++ (and other OOLs) weren't fit for such low-level work because of the compilers/linkers tended to make the code pretty inefficient. I guess I'm showing my age. :)
I always thought the aim of education and particularly any discipline that considers itself a science was to teach skills and thinking which
as a teacher, an education is supposed to educate. i.e. pass on knowledge. training is different from education. it's simply knowing that (education) versus knowing how (training). we too often confuse the two.
My problem? I was perfectly gruntled, until some numbnuts came by and dissed me.
Moreover, ML languages (like Caml) are really portable.
I think that if you examine the C# and F# languages, you'll find that they both fall flat.
"Smoking helps you lose weight - one lung at a time" -- A. E. Neumann
Joy, now there is a full featured language modeled off of that awful technology!
We're not god. Not only are we human but we are sometimes forced to become the devil himself. We're not god
The ironic thing about his post is that people from the subcontinent of India seem to have better 'math minds' than most white men.
I will say, if you remove "Stop affirmative action" and view 'man' as a gender-neutral pronoun (which it is), he makes some good points.
The technology field now consists primarily of certified-morons and foreign coders. What happened to the guys who started modern computing on its way back during World War II when they cracked the German enigma encryption by creating the computer? Where have all the talented white men gone?
Nono, Proud American, you should ask yourself where have all the talented men came from?
For your interest, Enigma code was cracked by a bunch of foreigners (some Brits and Poles).
Lisp is the Tengwar of programming languages.
And after bad reviews and lack of customer "buy in", Microsoft renamed their new language to FU, and added that all future versions of Windows will be written in FU. However, it is rumored that this is not the first FU from Microsoft to it's customers.
It's usually a very bad idea to include imperative aspects in functional languages.
Functional languages are amazing creatures. They're really strange to work in. They take a serious change of mindset. They can be very slow to execute. I/O is really odd when side effects are forbidden.
They have astounding benefits, too. The localization of effect means that they're really easy to debug. The lack of side effects means that some really enormous optimizations are open, which is crucial since the naive execution is slow.
Once you throw in any imperative aspects at all, these effects go right out the window. Even a single imperative statement potentially interferes with every optimization. ("Can I eliminate this execution branch? It seems like a redundant call but it might branch to that imperative statement.")
I think that this got in the way of ML. It can be easy to want to add just a tiny imperative element to make something easier, but that small crack opened up a lot of headaches for me. I greatly preferred the purity of Haskell.
I haven't read the F# spec, so I may be overreacting from the notoriously inaccurate Slashdot summary. That's next.
Your subroutines look particularly lovely today....
I believe we had the encryption cracked already when they recovered that one. Getting an actual example of the machine just made it clear how it was done.
If a job's not worth doing, it's not worth doing right.
What no F, then F++? Maybe MS realized everybody waits until their third attempt before they take MS seriously.
Well, there's spam egg sausage and spam, that's not got much spam in it.
mmmmmmmm....humble pie. The best kind!
:)
I'm not a nerd. Nerds are smart.
Heck, none of the examples he listed are things anyone would do in Java. Can you imagine OpenGL implemented in Java? Sounds to me like he's parroting something he heard once and didn't understand entirely.
If a job's not worth doing, it's not worth doing right.
'Ghash!' muttered Gandalf, 'I wonder if that is what they meant: that the lower levels are on fire? Still we can only go on.'
'Ai! ai!' wailed Legolas. 'A Billrog! A Billrog is come!'
Your mind is squeezed by a blast of pain!
What is that weird symbol that you use for your dollars?
:)
That's so colorful...
That's so silly looking...
It looks like Monopoly money...
How much is it worth in real money?
All sorts of fun things that American's say of other currencies...
Not that I imagine any of my target audience will read this, but ML happens to have one of the lowest inherent grammer contents of any language - much lower than C - it's a superb language for teaching people the ideals of programming without letting them get attached to syntax.
But hey, that doesnt matter ; this is slashdot ; Microsoft -> Bad, thats all that matters, isn'it it? Pricks.
THere is. Java is backed by a company saying java is java. Perl is backed by a core group.. same with python, php and ruby.
C and C++ are backed by ansi, who don't really seem to wield power of financial or social kinds when saying "wtf are you doing, THIS isn't c++"
-
ping -f 255.255.255.255 # if only
Functional Programming is a Very Good Thing to learn.
After being interested in functional programming languages for a while I had the opportunity to spend some time reviewing a textbook using ML. I figured that was the time to learn the language. Got frustrated quickly, I got several ML systems (including the one mentioned in the book) and no two worked alike. Hell, the syntax varies enough that there are ML dialects that look like completely different languages.
A while later I decided that perhaps it was time to spend some energy seriously learning Haskell. I got and installed Hugs (Haskell.org is a wonderful resource with several Haskell systems listed, tutorials, documentation, libraries and so on). Hugs implemented pretty much all of the Haskell described in the manual I found and the tutorials. (Today, I'd probably use the interactive GHC.)
It took a while, some dedication and a lot of grumbling to figure out how things worked and I'm still learning bits and pieces of the language and associated libraries and stuff.
Now Haskell is one of my favorite languages and I want to use functional tools (higher order functions, laziness, and so on) in every language I use. I'd say that Haskell changed my ideas about programming, my approach to problems, and my toolset both deeply and widely - and for the better. Probably as deep a shift in technology and technique for me as OOP (I started programming in Fortran, APL, Algol...) - but then OOP just always seemed Right to me.
Part of what made the learning process so effective was that Haskell makes it very hard to have side effects - so where in ML the books/tutorials often introduce mechanisms for building variable that work more or less like those in C - in Haskell this is very difficult.
So, while F# may be an interesting language, if you want to learn a new language, try Haskell. You may have to be obstinate. And if it works with you as it did me, it will drive you crazy until it clicks (and I remember exactly the problem that did it) and then you'll just kind do one of those quiet awestruck "wow"s and watch your view of programming change.
Haskell isn't the right language for everything. I also use Java, C and Python (and a few others) often - but for lots of problems, for doing a quick model of something to try it out, for just helping your mind think about a problem a bit differently ... Haskell is great.
But remember - you may well have to be stubborn about persisting till it clicks.
And on a related note...
Does anyone know if anything ever came out of the development of the functional scripting language "Sheep" for the amiga?
Eiffel.NET? Ask and you shall receive. :)
...rumors were that MS Research was going to originally call it FU!
--- I wish I could hear the soundtrack to my life. That way I'd know when to duck.
Who authors TCP/IP stacks in Java?
From what I saw, F#, uh, isn't. Its better but still, its like C++, ObjectiveC or Smalltalk or any other container based language where contained objects have no clue that they contained unless the programmer creates and maintains explicit references to the container.
Really, what the hell are you talking about?
And computing is so fundamentally simple. Its a game of N-Dimensional topology bounded by finite vectors in every dimension. There's no mystery involved. You just need to maintain a meta-model of the system and you can generate the rest.
Neither you nor I nor anyone have any idea what this means, because it is pseudo-intellectual gibberish.
Rumor has it that Microsoft is working on a "lite" version of F# to be called "F Micro" or "Fu" for short.
Oh wait, their lawyers already use it. Must be past beta then.
Give me my freedom, and I'll take care of my own security, thank you.
When I was in college, everbody told me to be proficient in VC++/MFC, because "that is what everyone is using", then I heard this about C#. I told them I have too much pride than to center my education on programming on a particular platform. I was told that I would never find a job, well it turns out there is a lot of money in embedded programing, so I say f#(k F#/C#/MFC.... There is a lot of money out there for people who know gcc/++ and know how to program in a POSIX compliant environment (and don't tell me that NT is POSIX compliant). F#(K MSFT!
I want my rights back. I was actually using them when our government stole them after 9/11.
I remember using this language in college when a vendor marketed it as Miranda. I found some incredible productivity gains once it was understood, but unfortunately I see little chance in the unwashed masses grasping Haskell. The imperitive/OO paradigm is so entrenched that it would take a sea change to push it out now.
*DRUM ROLL*
A G-flat to me.
Thats all from me, goodnight and remember to tip those waitresses...
Plays violent online games as: Nerfherder76
And while I love to make fun of C#, I think that "sharp" as a metaphor for improvement is no more silly than "++" as a metaphor for improvement (especially since "C++" would seem to mean "add some stuff to C without changing the actual result you get").
All's true that is mistrusted
Isn't XSL a functional language?
I think Microsoft will be placing F# in the dataprocessing arena.
thank God the internet isn't a human right.
But most of all, what does the discussion of one more language bring us? Agreed, languages get better, safer, more powerful, more abstracted. But the rate of change is so slow that it hardly seems worthwhile. Abstraction does not require syntax, after all, only the mental ability to form and use the right kinds of models. Someone who says "you cannot do such-and-such in language X" is simply someone who has not been able to see how.
My point is this: at certain levels, the choice of language is close to irrelevant, and new languages do not define progress of any kind. In contrast, new languages encourage the "throw it all away" mentality that plagues our business. You simply cannot develop a craft into a process if you have to reinvent your world every three or four years.
Programming languages are not and will never be magical solutions to the problems of writing good, large applications.
Excessive relevance is not a good thing in software. Good models of abstraction come from stepping back from the detail and looking at much larger pictures. Can you imagine a workflow model that allows people in five companies to collaborate on a project? Does the implementation of this depend on the language you use? Of course not. Can you invent an abstraction language that will support the model? Yes, and XML is a good place to start. Is this kind of thing worth doing? Yes, now you are starting to build abstractions that work ten, a hundred times better than conventional programming methods.
Sig for sale or rent. One previous user. Inquire within.
The interval is not major. The fourth note of a major scale is the Lydian mode whose corresponding chord is major.
We are dangerously off topic and unquestionably going to hell.
So he talks about how you can implement that Map function on a list.
:: Map f t;
//prepare the vector
//And here we map sqrt on all elements in the vector
//And this is another type of mapping to print the vector
fun Map f [] = []
| Map f (h::t) = f h
And this is beautiful. I love functional languages. But just for completeness, this can also be done in C++.
The following code should compile with the proper headers on any platform that supports C++
vector<float> v_i;
v_i.push_back(1);
v_i.push_back(3);
v_i.push_back(5);
transform(v_i.begin(), v_i.end(), v_i.begin(), sqrt);
copy(v_i.begin(), v_i.end(), ostream_iterator<float>(cout, ", "));
The Internet is full. Go Away!!!
Not to re-hash (heh heh) the temperament thread above, but I've always thought the major seventh between the mediant and subdominant was a lot more pleasing than the major seventh between the leading tone and tonic; I think IV - III is about a comma smaller than I -- VII. So maybe F# and G only sound good in D.
All's true that is mistrusted
Want an "interesting mix of imperative and functional features" in a language any C/C++/Java programmer can start working with immediately? Try Nickle.
Thanks all of you for correcting me so the others won't be confused. Thanks also for your valuable opinions and very useful references.
Less is more !
Then again, maybe all these fourths mean that they want us to use the Forth implementation for the CLR, DeltaForth.NET.
Now, as silly as the particulars of the .NET CLR may be, the idea of a truly language-neutral runtime is something I've been hoping for for a long time, and I'm really glad to see languages I enjoy like Forth and ML getting in on it. Now, if they would just make a Lisp.NET...
All's true that is mistrusted
You sound like Sean Connery.
I'll take TheRapists for $200, Alex.
Heh, what are YOU babling about. gcc isn't ansi c++ compliant. Heck, Borland
Funny thing is, if it doesn't stick to ANSI C++, is it C++? Is it as compatable? So now we have one supposedly ansi C++ compiler, and a bunch of supposdly non compliant. But you know what, people still call it C++.
Let's take a worse one. HTML. It's not a programming language, but everyone calls HTML, HTML. Every brower likes to claim support. but in the end, everyone extended it.
And btw, there are multiple "c"'s. There's J&R, (someone & R, i forget), borland, turbo, MS and ansi c. You write in ONE c, you can't cross compile as easily. Thus you have automake, autoconf and crap.
Sun just sued MS for distributing something called java which was incompatable. They also sued for not providing an implementation of Java. Heck, freebsd is suffering from this. They can't distribute "java" because they didn't pass the little certification of code to be called java. They have to distribute patch sets.
-
ping -f 255.255.255.255 # if only
Yeah, you're right. Ever since I lost my glowing box, I don't know what to believe.
Since when did ML mean anything other than Machine Language?
8 01 086.html
http://www.chisp.net/~dminer/c64/gazette/8801/8
Enjoy,
It's just the normal noises in here.
The only thing I can think of is that an array is stored contiguously in memory whereas a list is linked by pointers (references, whatever).
is the true successor to C and C++. See digital mars.
There's a new language being formed in the bowels of Microsoft.
I'm not learning another language, f#ck that!
[alk]
Actually, thy glyphs associated with the number sign,octoctorpe,or hash are somewhat different than the musical sharp sign. The sharp has slanted horizontal lines, while the # has slanted vertical lines.
I don't work for a company that programs for Windows or anything, I've simply used the tools in my spare time to make useful little Windows programs. So I can say firsthand that it isn't really so bad. I still get my hands dirty with small Linux apps from time to time and I stick with C/C++ for all that (as if there was a huge choice). Seriously, though, I doubt it could be easier to learn how to make a full-fledged X-capable app with widgets in Linux than it is to just open up Visual Studio and whip up a simple app that does the backend stuff for you. On the same note, I understand that many people hate the abstraction that goes on here and that makes sense.
The bottom line is that if you've got to do some Windows programming, the tools are easy to use and there is plenty of documentation for learning.
Just my two cents.
Microsoft should release their new High Security Language, B#, any day now. It's secure, because there are very few keys that can make it work.
someone had to say it...
"Right now, somewhere in this world, Scott Baio is plowing a woman he doesn't love," - Peter Griffin, *Family Guy*
I doubt there is any direct link. The ML developers in Harlequin were based in the UK, and as far as I know, none of them took jobs with Microsoft when that part of the company was disbanded. The story of Harlequin's ML and Dylan efforts is a long and sorry tale of leading to a missed window of opportunity.
a.
"sharp", "hash"...
# is also "pound". Go where you will.
That is one of the most ridiculous things I've ever read. What are Perl, Python, php and Java implemented in? C! If C wasn't portable enough to run on all the platforms those languages do, those language's runtimes wouldn't compile on those platforms!
Find me a platform that runs any of those languages that doesn't also have a gcc port that allows you to write portable code in C.
But one thing I hate about C# (and by extension, F#) is that it is nearly impossible to search stuff for it. Most online search engines (e.g. Amazon, google, etc.) barf when they see a "#" symbol in the input. Either they ignore it, or they split the tokens into "C" and "#" and usually give you nothing vaguely similar to what you want.
Note that even the C# compiler is named 'csc', not 'c#c'.....
Let's stick to alphanumeric symbols for language names, if only to make our Amazon purchases easier ;-)
Heh, gcc doesn't govern portability. For instance... take networking. Bsd, Linux, windows.. they all implement it differently. Maybe recently it changed, but at least 4 years ago, they were different.
When you need things like autoconf to detect the size of a pointer (32bit vs 64) or if flock works, it's not portable. sorry charlie.
-
ping -f 255.255.255.255 # if only
Indeed, it looked that way to me - Harlequin's was a project ripe with optimisim which steadily evaporated as real-world developers continued to do battle with less adventurous languages. As I remember it, at least.
I'd intended a "?" in my title (but bungled) - hoping to prompt some comment about the differences between the systems. Wasn't Harlequin's based on SML not oCAML?
Sorry but I can (and have) implemented perfectly portable networking code for all mentioned platforms. They all have an interface (available from C) to BSD-style sockets.
Isn't that where ALL their sofware comes from??
Yeah, but you're not supposed to see that =)
As far as I remember, it was SML based.
a.
...that Ocaml is speed competitive with C when compiled, and with java when bytecoded. Meanwhile haskell is more in the same speed category as awk and tcl.
Data here.
http://www.bagley.org/~doug/shootout/craps.shtml
Sodding slashdot.
Considering I started with ML and Assembler (for PC & Mainframe) maybe now a programmer can actually be called a programmer.
I learned Pascal, COBOL, PL/1, & C. After that I lost interest because any fool could call himself a programmer. I just couldn't accept that someone creating a screen for data entry in dBase was calling him/herself a computer programmer. I also felt a little cheated with some of these languages that generate huge chunks of code for the 'programmer' and the compilers that not only point to the error but tell you what to do to fix it. I know this is innovation but I feel this is what led to sloppy programming and the after-effect of bug-ridden software. A 'programmer' no longer had to think about what he/she was trying to produce.
True, ML and Assembler are 2nd genteration programming languages and long since considered 'dead' but some of us still use them today. Why? Because with them you have very powerful control over a comuter. Why else would M$ get rid of DOS. If you can boot a computer into DOS you can use a simple text editor and DOS compiler to create a program to manipulate the Windows OS.
The GEEK shall inherit the earth...
If I could think up shit like that, I'd move to France and style myself an 'intellectual'.
Unfortunately, I'll just have to keep on writing stable and robust real world applications in C and Java, and not bother my pretty little head about N-dimensional pseudology.
oh brave new world, that has such people in it!
I notice you dodged the whole pointer thing. And flock...
-
ping -f 255.255.255.255 # if only
Maybe they will create a language called F#C# .... which also would describe the adaptation stage!
Problem is, now you have split versions of C. You dont' have that problem with java. Foreshadowing your 1.3->1.4 reference, yeah, they can change the spec, but when you write a java 1.3 app, it's consistent across all java 1.3 jvms. Now we have C89, 99 K&R etc.. cross compilation becomes harder since every compiler does something different regardless of what it implements.
I rather my vendor follow a standard than me having to sort it out. It makes things less difficult. It also makes things easier to go to any box running jdk 1.4 and run 1.4 code. Or i can run 1.3 code on that 1.4 box. Heck, run 1.0 code on it too.
Nono.. i mean what if I write a c++ compiler and leave out...say.. template pointers. Everything else works. Can I say it's C++? What version?
Even AFTER 89, there was still that problem.
I meant crap as in stuff.. junk. Not as in pieces of shit
But while the core very core things may be portable in some parts, we have so many extensions to obfuscate the language. You can't really extend java past JNI, or perl past XS. And even then, you aren't extending the language itself further. You've just added new functions/methods.
-
ping -f 255.255.255.255 # if only
Yes, but C++ doesn't really have support for closures. If the function needed some state information, then you would have to create a class, a constructor, destructor and an overlaoded function call operator(). You would have to write 20 lines of code to use "transform". In the end, everybody just winds up writing a for loop, that is much smaller and simpler to understand.
Stop lying.
I looked into this a month or so ago. My take is that it's just a toy from MS Research. Nowhere in any of this did I get the impression there was any serious effort to market this as anything but an academic toy.
I don't think anyone with half a brain expects F# to replace C# or Java or VB.NET.
It's for programming competitions. Not for writing enterprise business applications.
http://chicagodave.wordpress.com
Given up? :)
-
ping -f 255.255.255.255 # if only
I'm just a bit bitter cause I spent half a day banging my head against simple problem which the w32api doesn't let you solve simply.
0 ,0,_ x,bt_y,T EXT,0,(LPARAM)parse_text);
I have a dialog from a resource file. I want to change the width of the dialog depending on what the text width is going to be (sorta like MesageBox does but I need a fixed width font).
OK not too bad, now I want to center the OK button. But to do that I've got to figure where the top of the button was so I can pass that back to the SetWindowPos call. Brick wall...
Here's what I had to do...
case WM_INITDIALOG:
{
int st_width, st_height;
int dlg_width, dlg_height;
RECT tmp_rect;
int dlg_x, dlg_y;
int bt_x, bt_y, bt_width;
TEXTMETRIC tm;
HDC hdc = GetDC(hwnd);
SelectObject(hdc, GetStockObject(SYSTEM_FIXED_FONT));
GetTextMetrics(hdc, &tm);
ReleaseDC(hwnd,hdc);
GetWindowRect(hwnd, &tmp_rect);
dlg_height = tmp_rect.bottom - tmp_rect.top;
GetWindowRectClient(GetDlgItem(hwnd, PB_PARSE_OK), hwnd, &tmp_rect);
bt_y = tmp_rect.top;
bt_width = tmp_rect.right - tmp_rect.left;
GetWindowRect(GetDlgItem(hwnd, ST_PARSE_TEXT), &tmp_rect);
st_height = tmp_rect.bottom - tmp_rect.top;
st_width = get_max_line_width(parse_text) * tm.tmAveCharWidth + 40;
dlg_width = st_width + 12;
bt_x = (dlg_width-bt_width)/2;
GetWindowRect(GetDesktopWindow(), &tmp_rect);
dlg_x = (tmp_rect.right-dlg_width)/2;
dlg_y = (tmp_rect.bottom-dlg_height)/2;
SetWindowPos(GetDlgItem(hwnd,ST_PARSE_TEXT),NULL,
st_width,st_height,SWP_NOZORDER|SWP_NOMOVE);
SetWindowPos(hwnd,NULL,dlg_x,dlg_y,
dlg_width,dlg_height,SWP_NOZORDER);
SetWindowPos(GetDlgItem(hwnd,PB_PARSE_OK),NULL,bt
0,0,SWP_NOZORDER|SWP_NOSIZE);
SendMessage(GetDlgItem(hwnd,ST_PARSE_TEXT),WM_SET
}
Ugly isn't it.
The function GetWindowRectClient(hwnd,hwnd_parent,rect)
I had to write that myself because SetWindowPos requires coordinates relative to its parents client area. There is no function in the w32api that gives you that information, but your supposed to pull it out of your ass if you want to change an X coordinate of a window and not the Y coordinate
Interesting that my mind just assumed we were beeping something out.
The game of life is not so much in holding a good hand as playing a poor hand well. - H. T. Leslie
http://www.cs.mu.oz.au/research/mercury/
Looks like prolog but fast.
Someday we'll all be negroes
http://lambda.weblogs.com/discuss/msgReader$1200
.NET version.
h tm l
BTW it's a new language but it's gaining buzz... at least with my logic programming teacher (and I do believe in fact more widely). Interestingly it has a
http://www.cs.mu.oz.au/research/mercury/dotnet.
Someday we'll all be negroes
I've referred to C# as, Db instead of C#, but that would mean it is for databases, oh well.
is it just a coincidence or is Microsoft picking langauge names that a lot of search engines can't handle? C#? F#?
I just did some tests with C# and less than half the search engines I looked at actually used the full string for the query. The rest dropped the # as punctuation and gave me any generic "C" results it could find.
Was there any thought put into this? Have we heard any statements or interviews from Microsoft about this?
Personally, with C, C++, and C# all looking identical to some search engines, I think they are going to make life rough for developers trying to look up documents/tips/errors/FAQs about their respective languages...
In the Portland, Ore area and like card games? Check out: http://groups.yahoo.com/group/portlandgames/
In an attempt to further control the controlling control schemes, they built the FU platform as a more direct way of marketing to thier moronic customer knowing full well that they would neven catch on!
I couldn't resist!!!
Oh, wait...
MapWindowPoints?
It sounds much worse if you reverse the characters making it a # f.
I mean, then MS programmers would need to either C# or Bb. :)
Nathan
There is no function in the w32api that gives you that information
If you didn't use it already in GetWindowRectClint, ScreenToClient will at least do the coord conversion for you. But I do agree, ui coding with C and the Win32 API ain't a whole lot of fun.
I just noticed something: in musical notation, the key signature for C# has the most number of sharps. F# is one fewer. A hundred bucks says the next .NET language is named B, then E, A, D, and G. The last language they release will be...wait for it...C! The key with no sharps!
Transcript show: self sigs atRandom.
- Topology is a branch of mathematics, not a game.
- How do vectors bound anything?
- What the hell do you mean by "finite" vectors? It's almost a tautology. You said you're in an "N-dimensional topology" so the vectors are obviously of finite dimension. How are they going to be infinite?
Stringing together a whole bunch of terms you heard while dozing in your maths classes do not make you sound intelligent."Where is the wisdom we have lost in knowledge, and where is the knowledge we have lost in information?"-T.S.Eliot
That's a dump arguement. Java has the same problem of having to detect pointer size and the presence of certain function calls, except its one level down, inside the libraries. Of course, that's a non-feature, since libraries that abstract these differences are available for C/C++ as well. It always seems to me that most of the "great features" of Java I'm always hearing about are actually benifets of a large standard library, not anything about the language itself. I've been genuinely impressed by some of the stuff Lisp, Ocaml, and other functional languages have, that C++ doesn't, but the few advantages that Java *does* have (garbage collection, introspection) are outweighed by the disadvantages (no compile-time metaprogramming, no operator overloading, schism between built-in types and user-defined types).
A deep unwavering belief is a sure sign you're missing something...
what the F#?
Well lah-di-F#ing-dah.
E
Marxist evolution is just N generations away!
IOF#CC just doesn't have the right ring to it. I'll stick with C. :)
Assorted stuff I do sometimes: Lemuria.org
Anyway, it is done, though arguably not in a commercial context.
You have a point there. But that makes sense-- researchers are doing research, so the the last thing they want is to get bogged down in dealing with hardware or OS dependent quirks. Java is pretty good for doing that.
If a job's not worth doing, it's not worth doing right.
Heard at a Microsoft Conferance:
MS Guy 1 : What's your favourite two languages?
Guy2: F#C# you.
MS Guy 1: Me? I'm sticking with VB & vb.Net Yeah baby!
Moderation: +4. Modded 70% Funny and 30% Overrated. 100% Saturated.
I'm using mingw/cygwin for my development. I don't have Visual C++. Besides, I still don't trust C++ in general yet. So I suppose you figure I'm already a sucker for punishment and should stop complaining :). But hey, I'm not a total ludite like those win32 in assembly programmers :)
Anyways, somehow I guess I missed the MapWindowPoints function, thanks for the tip. I usually use the first thing in the win32api that'll do the trick and I didn't stumble on that one right away.
Thanks, I already did use it:
BOOL GetWindowRectClient(HWND hwnd, HWND hwnd_parent, RECT *rect)
{
POINT p;
if (!GetWindowRect(hwnd, rect))
return FALSE;
p.x = rect->left;
p.y = rect->top;
if (!ScreenToClient(hwnd_parent, &p))
return FALSE;
rect->left = p.x;
rect->top = p.y;
p.x = rect->right;
p.y = rect->bottom;
if (!ScreenToClient(hwnd_parent, &p))
return FALSE;
rect->right = p.x;
rect->bottom = p.y;
return TRUE;
}
One of these days someone (maybe me) should make a library for all the "missing" API calls. You know the ones you have to code yourself that should have been in the API in the first place
Sure, and they'd love to relegate VB6 as well. It's interesting, however, that Microsoft is currently demonstrating more practical support for real (not "Managed") C++ than at any point in its history.
The thing is, if you knock out C++, COBOL, FORTRAN and VB6, you've just ruled out four of the most popular programming languages on the planet, which together with C and Java probably account for, what, 95% of successful projects developed/maintained over the past decade? 98%? 99%? 99.9%?
Compared to these things, C# and VB.NET aren't even a blip in the ocean yet. There is potential in .NET to be sure. We all know there are serious drawbacks to each of those other languages in the wrong context, and we all know better is possible. But the fastest thing to kill .NET will be the attitude that these others are "legacy" languages. "Tried and tested" is the way a smart guy would look at it.
Something else may be better. In fact, it's pretty much a sure thing that sooner or later something else will be better. But if Microsoft's .NET group drop support for the current established big players before they've proven their replacements (and that will take years, if not decades) then they'll reduce their platform to a mere curiosity and not a serious platform for serious developers.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
Or it doesn't work for every language, as the case may be.
The common library will be useful for those who would otherwise have to learn a different GUI or database access or Internet comms library in each language they use. Then again, if you're familiar with GUI programming generally -- event-driven designs, typical WIMP environments, etc. -- then learning a new library doesn't take very long, as they're all much the same anyway. And of course, even then, you probably only learn a small number of such libraries anyway, but you have to keep up to date as they evolve, just as you'll need to with .NET's.
Where .NET, like Java before it, may fall down is the fact that it probably won't be the best UI/DB/comms library for everyone, so the commonality argument is diminished. And of course, there will always be thousands of specialist applications where the .NET library won't offer anything, and in many cases, these will only be developed for the languages of choice in those specialist fields, be they C, LISP, VB, or whatever.
Basically, I think the library commonality argument has some truth in it, but it's vastly overhyped in practice.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
That senior level MSFT execs have been taking music lessons lately? Just wondering, this new languge-naming trend has an odd consistency to it.
Of course, I'd _love_ to see somebody do the "Developers..." (Ballmer) clip in a falsetto, as if on helium. In fact, I think I'll try that on my (linux) workstation. Just for grins, of course.
C|N>K
Ok my age is showing. I remember the pound sign representing English currency (money) being shift-3 on my old typewriter. It looked like a curly capital L with a short dash through the middle of it. When the american keyboards took over, the # replaced the curly L symbols keyed by shift-3. Otherwise I can think of no other reason why the # symbol would be called "pound". So I refuse to go there. The pound weight was always written lb (ell bee). And I have never known how you get lb out of "pound".
-- it must be true, it's on the internet.
The very fact that computer languages are now being changed only to obfuscate the C programming language tells volumes about the corporate agenda.
Originally C++ was designed to make it easier to create extentions, and morph existing primitives. Along comes Microsoft, and now the programmer does not need to know how things work.
No wonder so much junkware exists for Windows, any
goof with a microsoft compiler can create an executable, hide what they wrote and then try to sell to gullible Windows users. F# will just make it even easier to create proprietary junkware.
OH THE SHAME I fell off the wagon and use sigs again!
Tried Borland Kylix?
Er? You dont' have explicit pointers in Java. You don't have to worry about pointer sizes. The implementator of the java vm on choice machine has to worry about that.
-
ping -f 255.255.255.255 # if only
Ever hear of arguing a possibility and not a chosen solution?
People like to assume that int pointers are always the same size, thus mixing them with void pointers. So you get people doing stupid things like cross assigning them since they fit into each other.
Under languages that don't provide the use of pointers or allow mix-matched assignment doesn't suffer this.
--
Turns out you are right on the flock issue.
-
ping -f 255.255.255.255 # if only
Insightful?!?!
WTF!
The joke is that the names are C - Sharp and F - Sharp, but that they fall flat -- ha ha ha, get it? Both musical terms. Sharp is a note moved up one half step; flat is the note moved *down* once step, chortle chortle, *gasp*. ROTFLMAO.
We now continue our regularly scheduled broadcast.
Karma: Chevy Kavalierma.