imekon wrote:
That's the first time I've heard C# (a Microsoft language) described as 'cross platform' unless you are referring to Mono.
Yeah, that's what I meant. Same smell, different nostril.
What cool stuff do you think C# can do? It's dreadful at creating UI apps; also for Windows has a 20MByte download for now, if you don't have the .Net installed. Is .Net available for Mac as yet?
I've never been good at designing UI's; I usually prefer to work on the backend of things. However, I did do some UI development in C# for my job, and here were the things that I liked about the dot-net platform:
- It's really easy to open and read from a variety of data sources. HTTP servers, database servers, access files, text files, whatever, it doesn't care. The calls to get a filepointer are all pretty much the same, and you can generally accomplish it in a half-dozen lines of code or so.
- The structure of the language is very logical and easy to work with. It's basically organized the same way as java (surprise!), but it's much cleaner and more logically structured.
- The level of abstraction between classes is great, especially through the use of properties. It makes it very easy to develop apps on a big team of people, where each member of the team is unaware of everyone else's modules... you just put the classes together, and everything builds.
- Great builtin data structures, such as hashtables (my personal favorite), datasets (make one sql call and all the result rows get dumped into a single data structure), etc. Also, it's very easy to simply nest these structures within one another without having to be terribly concerned about memory management. I know that java provides these features, too, but like everything else in c#, it provides the same functionality as its java counterpart without making you go out of your way to do it.
As far as new, "trendy" languages go, I did like working with c#. I still prefer c++ more, however, but that's partially because I'm a huge performance junkie.
I don't believe that MS has an official .NET runtime environment for OSX yet, and I wouldn't expect them to provide one. However, at least c# is an open standard (unlike java), but the tradeoff of that is that the open-source community got to take the reins. Don't get me wrong; I'm a huge fan of OSS, but like many open-source projects, the .net stuff also suffers from a lack of guidance and direction. As such, there are actually several competing runtimes for both linux and bsd. I messed around with mono and a few others for awhile, but I never got around to doing c# stuff on my mac. Check out
o'reilly's .net site if you're interested in developing applications with .net on the mac.