De Icaza Says Microsoft Has Shot .NET Ecosystem In Foot
An anonymous reader writes "Microsoft has shot the .NET ecosystem in the foot because of the constant threat of patent infringement that it has cast on the system, Novell vice-president and Microsoft MVP Miguel de Icaza is quoted as telling the website Software Development Times recently."
I used to respect that company (NetWare 3.11, NDS, NetWare 5.0, GroupWise, ZenWorks, all top-notch tech, IMHO).
Now, a tad less.
"The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
Microsoft has shot the .NET ecosystem in the foot
A head shot would have been clearer. We all know .NET limps already.
Or is this just the usual Microsoft wobbling instead of making an actual decision?
Those who can make you believe absurdities can make you commit atrocities. - Voltaire
It took how many years for Miguel de Icaza to realize this? Most of us could have told him that with seconds.
There is hope for him yet!
I am Slashdot. Are you Slashdot as well?
That's a little rich for De Icaza to be coming out and saying this now. He's spent years shouting down anyone that warned him about the patent scenario with Microsoft's technologies and yet he continued to proselytise. He's worked away on Mono and Silverlight and made sure to get them included wherever he could.
So is he allowed to be surprised or angry now?
I never get used to these constant resurrections
for assuming (and advocating to others) that Microsoft won't threaten Linux.
The largest prime factor of my UID is 263267.
http://74.125.153.132/search?q=cache:O6bmbLpdB1gJ:www.sdtimes.com/DOES_WINDOWS_COST_MICROSOFT_OPPORTUNITIES_/By_David_Worthington/About_NET_and_WINDOWS/34203+http://www.sdtimes.com/link/34203&cd=1&hl=en&ct=clnk
Dude... (chicks don't react like that) .NET is supposed to be cross hard- and software.
It was introduced to abstract the OS so that if Microsoft were to also release Windows for PowerPC's or whatever architecture, .NET apps would still run,
Later on Microsoft announced the interoperability (this is my time to "Pffffffwahahahahaha") and they killed it with patent infringements.
So now, yes, Microsoft has shot the .NET ecosystem in the foot, which is differently from shooting it in the head.
What I am saying is yes; .NET is still very strong and succesful, but limited to Windows pretty much. Good for Microsoft and Windows, bad for the ecosystem itself that had spread to other OS platforms with Mono (which is chasing taillights and thus sucks).
Here be signatures
Taken from Google Cache: http://74.125.93.132/search?q=cache:LPFDjfqGMRMJ:www.sdtimes.com/link/34203+Does+Windows+cost+Microsoft+opportunities&cd=1&hl=en&ct=clnk&gl=us
Does Windows cost Microsoft opportunities?
By David Worthington
March 17, 2010 — .NET Framework has won new users to the platform, and drawn its share of criticism from those who think Microsoft’s stewardship has often been off-target.
The evolution of the
Among the critics is Novell vice president Miguel de Icaza, who said .NET's focus on Windows has come at the expense of opportunities for Microsoft, and its desire to guard its intellectual property is an impediment on the platform.
"Microsoft has shot the .NET ecosystem in the foot because of the constant threat of patent infringement that they have cast on the ecosystem," he said. "Unlike the Java world that is blossoming with dozens of vibrant Java Virtual Machine implementations, the .NET world has suffered by this meme spread by [Microsoft CEO Steve Ballmer] that they would come after people that do not license patents from them."
In practice, the Java community only uses two or three JVMs (IBM's, JRockit, and OpenJDK from Sun), while others are research efforts or smaller-scale open-source projects, said author and consultant Ted Neward. "Virtual machines are not something the open-source community seems to want to experiment with."
Microsoft submitted the Common Language Infrastructure (CLI) specification to ECMA International, which ratified it in 2001. Microsoft built technologies on top of the specification as .NET evolved.
Microsoft has made an open-source CLI implementation codenamed "Rotor" freely available, but it has had little or no uptake, Neward noted.
However, Mono remains the only implementer of the ECMA CLI specification outside of Microsoft, and that is a testament to the legal uncertainty surrounding some aspects of .NET due to Microsoft's statements about open-source software, de Icaza said.
"[Microsoft] would still be the No. 1 stack, but it would have encouraged an ecosystem that would have innovated extensively around their platform," he added.
Facebook, Google, Ruby on Rails and Wikipedia could have been built using .NET, de Icaza claimed. "All of those are failed opportunities. Even if the cross-language story was great, the Web integration fantastic, the architecture was the right one to fit whatever flavor of a platform you wanted, people flocked elsewhere."
"To say that Google could have used .NET is to undervalue both Google and .NET. Google creates value from things like distributed MapReduce and a brand-new system-level programming with concurrent coroutines," said Larry O'Brien, an independent analyst and consultant who writes the Windows & .NET column for SD Times. ".NET creates value from a fantastic IDE, great mainstream languages, and well-executed technologies like Silverlight, LINQ and the DLR [Dynamic Language Runtime]."
Despite the criticisms, customers are "making bets on .NET" all the time, said Brandon Watson, director of product management for Microsoft's development platforms. "The fact that we didn't get Google—I'll cry a little, but not a lot. I'm not certain that Google wouldn't have taken a bet on philosophy, wanting to beat us."
Further, developers can build languages on top of .NET 4.0's dynamic language runtime, which supports both Python and Ruby, Watson said. But it's the addition of new technologies on top of the ECMA specification, such as the DLR, that de Icaza believes impedes the CLI's adoption.
Microsoft's submission to ECMA has remained at a "core level," de Icaza claimed. "I
Be careful or you'll summon the fail whale!
The sky in Miguel de Icaza's world just turned blue!
"I believe in Karma. That means I can do bad things to people all day long and I assume they deserve it." : Dogbert
-- as if nothing like this was ever anticipated or expected.
Whoosh!
Since? SINCE? Have you been screwing with the space-time continuum again? "Ecosystem" was around before Twitter first started.
I half agree, though. .Net is a platform, not an ecosystem, although "ecosystem" can be a reasonable term (e.g. for an interaction of technologies in a computer-based environment).
"He also claimed that Facebook, Google, Ruby on Rails and Wikipedia could have been built using .NET."
Wikipedia? AHAHAHAHAHAHAHA no. Really, no.
(Although the WMF Lucene search implementation was done in C# on Mono for a while, when Java wasn't yet sufficiently free software. It ran at half the speed of the Java version.)
http://rocknerd.co.uk
Mono is a cheap imitation of .NET, which is a cheap imitation of Java. This is why Java rules on the server.
http://rocknerd.co.uk
I'm afraid your commitment to excellence has not synergised with market driven realities of the mission critical holistic buzzwordverse. Buck up your ideas sonny and buy into the knowledge base on a going forward basis or you'll soon suffer negative organic growth in your wetware core vocal services vis-a-vis next generation corporate employment opportunity scenarios!
There is nothing about it that justifies the prefix "eco".
If I'm wrong, please correct me ; learning is better than being right.
I wouldn't say that Mono sucks. It's certainly behind .NET, but it's not the average crappy FOSS clone.
Microsoft's idea of cross platform is one of their platforms; like Windows 2000, XP, Vist and 7.
If someone is passing you on the right, you are an asshole for driving in the wrong lane.
All MS is interested in is the bottom line. If they allow free implementations of .NET then as far as they see it they'll lose sales on their .NET compiler and whats more may even lose Windows sales if people port their .NET apps to a-n-other platform.
I'm not saying they're right but thats probably the way their short term thinking marketing and legal dept see it.
can we get that diseased crap out of GNOME?
Maybe the biggest lamentation I have is regarding C#. I keep on hearing how it's a wonderful improvement on C++, which is my bread-and-butter language. But I'm just not willing to invest time in a language that requires paying a Microsoft tax one way or another.
Similarly for F# (I have a deep love for functional programming).
Given the number of incompatible platforms that qualify as .Net, I would say it is an ecosystem. Between Mono, Windows .Net, and the various versions of Silverlight, calling it a 'platform' is somewhat disingenuous. I'd be fine with it, if I could just run my the code wherever I want. But you can't do that, because Microsoft has decided that multiple implementations are a better idea than one cross-platform one.
I agree it is annoying, but I don't know of another term that describes the community of developers/product vendors, customers, and integrators who use/support a technology. Do you have an alternative suggestion?
Miguel was enamored with a lot of the technology behind ".NET", and thought he could outsmart Microsoft, in a sense. He thought he would be pragmatic and non-religious about the technology and adopt it.
What he never realized, and is maybe now only starting to realize, is that .NET is a *marketing* term. It was brilliantly crafted by Microsoft's marketing people. As smart as their developers are and as cool as Miguel thought their engineering and technology is, their marketing is far and away better and more sophisticated. .NET is a brilliant marketing strategy. Miguel didn't realize that by using the '.NET' term so incessantly, he was basically ensuring that he would be in the position that he's in now.
Sure, there was C# and the CLR. That was probably 10% of ".NET", which was a overarching strategy for the *Windows* ecosystem at the time that involved extending Windows into the Internet as much as possible, including "tieing" it into all sorts of Microsoft-oriented services that were MSN at the time.
Think about it. VisualStudio.NET. What the !@#$ does that mean? It's a branding term. Miguel showed his complete lack of understanding of marketing by using that term so regularly and continuously WRT Mono.
Everyone else has been saying that forever, but to hear it from you.. I'm impressed.
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
Put aside the fact that De Icaza is now eating his own words about the patent issue and look at the issue itself. Microsoft simply has not accepted how things have begun to change. Developers rarely need them the way that they used to need them in the business space. Most large enterprise apps can now be entirely built in Java, Ruby, Python, Perl or PHP for the backend and JavaScript with a toolkit like jQuery or ExtJs for the front end. There is not a single need for Microsoft in that whole space.
Microsoft needs to realize that developers have options now and their threats are empty. Most developers would laugh at their attempts to control things now and simply say "have fun with that" as they switch to some pure open source approach or one built around a hybrid of open and closed source from various projects and vendors.
I have to disagree. Mono has grown out of it's cheap-copy-of-.NET state. It tries to keep compatibility with .NET, but it has become a great framework itself.
^_^'
Dear
Stop playing with monkeys.
Was this intentional? Because it's pretty clever, if you consider, you know, Ximian.
OK, I checked, apparently "eco" comes from greek , meaning "home". Sorry, I talked too fast.
Another point that one could make, is the fact that the term is already in use for describing something different, that have nothing to do with computers.
If I'm wrong, please correct me ; learning is better than being right.
Do you have an alternative suggestion?
I was going to suggest computersystem instead of ecosystem but I don't think it would ever catch on.
He already pushed Mono into a lot of parts of Gnome...harm is already done De Icaza, you had to realize before pushing it into one of the most widely used Linux desktop enviroments.
Not quite. Cross platform to MS means Windows and Wince. The point of .NET was never to hide the OS, it was to allow you to write Windows applications that were architecture-neutral, so you can run them on a desktop x86 CPU or a mobile ARM/MIPS/PowerPC CPU. All of these architectures were supported by Microsoft when .NET was introduced, but Wince had the big problem that it didn't run desktop Windows apps, which eliminated a big chunk of the reason for running a version of Windows at all.
Wince 7 now only allows you to run .NET apps, which means that Wince 7 can run the same apps on any architecture, and means that if you write a .NET app that runs on Wince 7 it will also run on desktop Windows. Conversely, if you write your desktop Windows app using .NET then you can easily port it to mobile Windows machines just by tweaking the UI a bit to work on smaller screens.
I am TheRaven on Soylent News
Agreed. Mono is an implementation of Microsoft's CLR - not an "imitation" in any way, shape or form. It is an implementation many people worked very hard to maintain in the spirit of Microsoft's announcement of the CLR being cross-platform. Throwing around the term 'imitation' is an insult. Calling it an imitation is analogous to saying ext3 is an imitation of FAT32.....
Snakes bite, buddy, that's why we don't play with them.
I don't know why you keep thinking that Microsoft wants some sort of "ecosystem". They want control, but they're always willing to use a useful idiot.
Do you have ESP?
Why do we care what this 'tard says anymore?
I mean, seriously, why?
I have heard nothing but idiocy come out of his mouth for years, yet somehow people seem to keep giving him the time of day.
De Icaza is known for just one thing these days: he hasn't got a fucking clue. Been so long since he had one, seems he says something even vaguely sane, e.g. ".Net is a trap for the unwary" and it is newsworthy.
I vote we all ignore this tool from here on in.
You can easily remove mono with 'sudo apt-get remove --purge mono-common'
Dear
For the record, I'm not one of those guys up in arms that Novell is trying to create interoperability with Microsoft systems. I think this is a good move to help companies transition to Linux.
Novell's work on Mono, Moonlight, OOXML support in OpenOffice, Samba, OpenChange, etc. is a good thing.
That being said, there have been tons of worried detractors citing possible patent problems with .NET.
De Icaza told everyone not to worry about them, and started shoving Mono into every app he could, ignoring those concerns constantly. Isn't a bit late to start listening to those concerns after you shipped products with Mono in them?
http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
Sun shot Java in the foot a few times.
Microsoft abused its monopoly position to shoot Java at short range.
Go green: turn off your refrigerator.
Miguel has been trying to convince everyone in the FOSS world this was not a problem at all especially in regards to Mono. So how come the change of mind now?
My karma is not a Chameleon.
Promissory estoppel does apply for things covered by the OSP, but the OSP doesn't cover nearly as much as you seem to think it does. The grandparent's analogy would be more accurate if the host said 'Oh, I promise not to decapitate any of my guests with that sword.'
I am TheRaven on Soylent News
Silverlight which is also supported by Microsoft on Apple's Mac OS X
And which caused my browser to crash regularly whenever it was invoked. YMMV but for me, it was almost as bad as Adobe's Mac implementation of Flash.
This ain't rocket surgery.
It probably was intentional, given that Mono is Spanish for monkey...
I am TheRaven on Soylent News
Where is this Microsoft Vist and where can I find it? :P
For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
Novell paid for patent protection, so Novell shipping Mono is fairly safe. The problem is Ubuntu shipping Mono without patent protection, or Red Hat for that matter.
As for Microsoft playing nice, I doubt that is their motivation, but the EU is basically demanding that Microsoft work on interopability.
The Microsoft/Novell deal really does make sense for both parties. Novell doesn't have to worry about patent lawsuits. They get to go to existing Microsoft shops and tell them that Novell is the best Linux flavor to integrate into existing Microsoft environments.
Microsoft gets to hold FUD over Red Hat's head saying "if you run Red Hat, you may get sued!" For customers who might consider a Linux migration, Microsoft doesn't lose them as customers. For one, they're less likely to move over 100% to a full Red Hat/Linux environment when Microsoft can tell them to shift only a few systems to Linux with Novell/SLES and interoperate with existing Microsoft products. Even better, they buy the Linux licenses through Microsoft and maintain the client/vendor relationship.
So long as it appeases the EU, and it remains mutually beneficial to both sides, Microsoft will play nice with Novell.
http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
Give me a pair of scissors and a Vista DVD and I'll show you. It's superior to Vista in every way.
You should look up "Mono" in a Spanish to English dictionary.
Dilbert RSS feed
How is java's cross platform ability a myth? How many java programs that you know of are not cross platform when written correctly? With the not very notable exception of a few non-standard libraries, the occasional difference in performance and developers that hard-code file paths, java works very well on multiple platforms.
ecosystem
Main Entry: ecosystem
Pronunciation: \-sis-tm\
Function: noun
Date: 1935
: the complex of a community of organisms and its environment functioning as an ecological unit
I understood "ecosystem" in this context is not about the computer system but about the different programs, libraries and their developers. So the term would be quite applicable.
This post contains no rudeness or derision of any kind. All arguments are friendly. Terms and exclusions may apply.
The myth about simple cross-platform development in Java is just that, a myth. Anybody with cross-platform Java experience will attest to this. Java, as a language, has grown stagnant, while C# has continued to evolve.
I and our team of 100+ Java developers will disagree with your statement of Java and cross-platform development. We find it excellent. Is it perfect? Nope, but in my opinion it would be a 9 out of 10 with the next closest competitor being.... Well there isn't really any close competitor but I guess we could give the C language a 2 out of 10. Perhaps Ruby is good but I haven't looked at it. Granted I am talking more about the JVM that Java itself. However, Java like other languages has evolved quite a bit in the last few years.
Does Java have the radical changes that say languages like SCALA have? Nope, but then again it shouldn't have that. Is it stagnant? Not at all.
The core difference you see between any of the Microsoft languages and the JVM languages is that the JVM languages somewhat try to work within the community. They also want to maintain binary (class) backward compatibility. Microsoft is an absolute dictator with their language and even to a large part their tools. This does have it's advantages, in that stuff comes out quicker, but then again, if you are a business and built you lifeblood one VB6 to have it brushed aside by Microsoft, you might be a little angry about that ruthless dictator approach. If you are some contractor type of person who wants constant change in the core framework to make your life easier (at the cost of compatibility), then you would probably like this approach.
So in short things like closures will be in Java 7 (not a small task), and Java the language is not at all stagnant. Cross platform development, testing and support is excellent with Java. We use OSX, Ubuntu, Microsoft Windows XP and 7, and RedHat with no problems.
The more I learn about science, the more my faith in God increases.
Or even just users and suppliers. Why does they have to be a single catchy buzzword? Or are management types really so dumb they can only handle one word at a time?
Does that mean "gimp" is going to be ported to ".NET"?
You can see a prototype of such an image manipulation program at Getpaint.net.
This. Silverlight does not play well on the mac, at all. I really don't want to talk about the horrors of that project.
How about "infection"?
I do all my programming in Java but I disagree with you on Java being superior to c# and .NET in general.
C# for example is a more advanced language in comparison to Java. I am sorry that C# is not easily usable on any platform and it is a pitty that it is not very common in scientific field.
I am a CS researcher and I am forced to use C or Java because most of the researchers do.
Miguel was enamored with a lot of the technology behind ".NET", and thought he could outsmart Microsoft, in a sense. He thought he would be pragmatic and non-religious about the technology and adopt it.
I've been saying it for years -- real pragmatism must always include consideration of the practical realities surrounding a tool or technology. Like, who is providing it, what are the terms under which they provide it, could those terms change and how would that affect your use of the tool? Or as you point out, how does the technology you like (C#) fit into the larger strategy being pushed (.NET)?
Many engineers tend to want to ignore those aspects and focus solely on the qualities of the tool itself. They say they just want something that "does the job", and thus fail to consider how those factors affect the tool's ability to do the job. Because, being technically-minded people, they want the technical factors to be the only ones that matter. They call this "pragmatism" and being "non-religious".
Which just goes to show how even people who value pragmatism and rationality more than anyone can still be completely irrational. Ignoring the important external factors because you really wish they weren't important is not rational!
Rationality is simply a useful trick that our mammalian brains have picked up. But at the end of the day we are still emotional animals, and even when expending great effort to force ourselves to think rationally we can't eliminate the effect of our emotions. Much of the time "rationality" is simply a way to justify what we've already decided based on emotion.
Ergo the worst thing a person who values rationality can do is tell themselves that they are completely rational and uninfluenced by emotion. I think there's an important lesson to be learned here, even for those of us who saw this situation coming from a mile away.
The enemies of Democracy are
Sure, .net would have been way better if it embraced Linux and welcomed re-implementation from the beginning. It would have been more widely adopted, there would be more open source VMs and IDEs, etc.
Why? Because people love free stuff. Good for the ecosystem doesn't necessarily mean good for Microsoft. No one wants to pay for a Windows license for each machine in their datacenter. How many Solaris licenses did Java sell for Sun?
The way I see it, .net was yet another decent attempt at forcing Windows lock-in (and keeping already-locked-in partners happy and productive).
The idea that MS has shot .net in the foot because of people who use Mono is just hyperbole. I'd guess that 99.999% of people using .net do so on Windows.
Despite being a .net developer, I'd choose Python or Java if I had to do a project on Linux.
Net is a platform, not an ecosystem
Both terms are silly metaphors. I vote that any silly metaphors should always be related to automobiles, so that makes .Net a "drivetrain".
So, in other words, Microsoft is encouraging a monoculture rather than a Mono culture?
GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
He doesn't go as far as say he's given up or that he's been wrong all along. All he said is that they shot themselves in the foot and LIMITED the spread of .Net by threatening people with patent litigation.
It really looks like he's saying "It could have been so much more" rather than "I have today truly awoken!"
So until we have a more solid quote from him that supports the idea of retracting on previous statements... the bubbly should be put back on the rack.
Cwm, fjord-bank glyphs vext quiz
The Silverlight runtime is not the same as the .Net runtime. They overlap with features, but its a different runtime (even on a Windows machine with the .Net runtime).
Some of the strongest minds in computer science have built out .NET, and continue to do so. There are some practicality gaps, but today the majority of the corporate world is powered by .NET devs, for better or worse.
However, this many years into the platform, it's starting to show it's age. From .NET 1.0 applications, laden with crude pinvokes to Win32 API's, GDI+ silliness, messy ADO.NET integration, through 2.0, 3.5, 4.0, the "Enterprise" helper classes, the "Foundation Extensions", the integration of pseudo-SQL declarative syntax with LINQ, Entity Relation classes, Unity, security, contracts, plus all of the layers of ASP.NET tools .... don't VS's forget code analysis, test suites, code coverage, profiling, generated documentation... there are many more but you get the point... ...all this is shaping up to be a very MS-centric view of the .NET universe. Which is a mistake, De Icaza seems to imply. I wholeheartedly agree. While the computing world abandons PCs for most tasks (gaming, editing information aside) and info consumption is done via smaller devices, on a variety of hardware & OS's, MS has bound .NET to their OS deployments - and there will be many other OS's talking in that space.
This is Microsoft's biggest gamble with .NET: That as the OS lives or dies, so does this platform. Really, it could be bigger than Windows. If MS shipping a full (even licensed) 4.0+ framework for use on Linux & Apple, it would inject a massive growth spurt in both those platforms but a huge and lasting foothold on the MS-based app development.
I think the thing there is that Linux has not presented itself as a market worth catering to yet (as far as desktop applications go). If there was money there, Microsoft would be there already.
Don't take life so seriously. No one makes it out alive.
It is cross platform (not necessarily cross OS). I've written code in C# that can run on my Windows Mobile phone or on my Windows laptop or as a Web Service or in my SQL Server database or in Silverlight or as a Web App or even on an XBox. That portability works well (as long as the libraries are supported -- see Compact Framework for example). It may not work as well on the Mac or Linux (but Mono does work), but porting code between the platforms I mentioned isn't that difficult (mostly just changing your target in Visual Studio; assuming library support existing on the targetted platform).
>.Net shoots the developers and end users.
.NET work and it seems pretty easy to use to me.
I don't get it. I do mostly
Don't take life so seriously. No one makes it out alive.
Uhm ... no. .NET is supposed to make it easier for idiots to write code by abstracting a lot of the hard parts from them. Sadly, like every other time someone has tried this it turns out that its actually more difficult to do anything beyond extremely simplistic because learning how to deal with GC issues is actually far more complex than just fucking freeing memory on your own.
The hardware independance is a side effect of compiling to an intermediate language. VB has essentially had this 'feature' its entire product life, and its always been thought of as a downside, not an advantage. The only people who think of the .NET IL system as an advantage are basically VB programmers who don't really understand what the framework and runtime are doing.
If you'd like to discuss why .NET is still limited to Windows its a far far simplier reason than anything you've posted.
The reason is simply: Mono fucking sucks. I tried porting a ASP.NET app to Mono ... oh .. the GC is a pile of crap and results in ever growing memory usage since it doesn't relocate in long running apps ... i.e. you gotta restart often otherwise it'll fragment its memory into oblivion unless I ... worry about memory management (might as well go back to using C). But ... I can publish to IIS via front page extensions in MonoDevelop ... cause thats fucking useful to anyone other than some idiot learning how to use MonoDevelop and publishing to a local test server. Just recently I was starting a new desktop app for a personal project, so Lets try Mono so I can be lazy and turn out this app quickly ... Look ... serial ports support is broken on OSX ... they've had a patch that fixes the problem for over 3 years now ... no one has bothered to commit it ... it changes like 5 lines to use mono_poll instead of trying to call poll directly to deal with OS abstraction for poll ... Once again, I just reboot into Windows and work on it there. I presume serial ports work on Linux but thats pointless to me since I actually want to run my app a machine I might come across at someones house. My friends don't use Linux so ...
The MS implementation isn't bad. Mono is an asstastic pile of shit that is more concerned with filling in buzzword checkboxes than actually doing something useful.
Mono's idea of feature complete framework support is that they added stubs that throw NotImplemented exceptions. Mono needs to be managed by developers who care about making it work right, not developers and managers who are more concerned with filling in buzzwords so they can attract the crowd of 'developers' that follow buzzwords.
Mono isn't popular because its leadership and current output suck ass, thats all.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
>> It was introduced to abstract the OS so that if Microsoft were to also release .NET apps would still run,
.NET was created to take developers away from Java and back onto Windows. Read up on some of the court documents to see what really was the deal. MS .NET came about well after the PowerPC systems(CHRP and PREP ) gone. It was all about stopping a cross platform product from becoming popular and therefore making Windows just another OS and therefore a threat to their #1 profit generator.
>> Windows for PowerPC's or whatever architecture,
no way dude. MS
LoB
"Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
How many java programs that you know of are not cross platform when written correctly?
(emphasis added)
The same could be said of C/C++ programs with appropriate cross-platform macros and libraries.
$_ = "wftedskaebjgdpjgidbsmnjgcdwatb"; tr/a-z/oh, turtleneck Phrase Jar!/; print
If you really are finally on the road to Damascus, be sure to snap some pics.
So, a major author of free software thinks Microsoft could have done better by being more open. Why is this interesting?
Yeah, I don't know about that statement either. C is very much cross-platform; Linux kernel is written in C and runs on lots of architectures as well (it does have a few tiny bits of assembly, which would be needed for any OS). The thing with C is that to do any real high-level development, you have to have libraries, so those libraries of course must be available for all the architectures you're targeting.
The main problem with C and cross-platform work is that it's very easy to make stuff that won't work right on other platforms because of the data types (int, long, etc.), as these are different on different platforms. But that's easily solved by using custom datatypes, like the Linux kernel does (u8, u16, etc.).
This is true in the trivial sense that anything any computer can do can be done on any platform that allows control of the same I/O facilities and supports at least one Turing-complete language.
OTOH, I don't see that any substantial argument has been made that .NET would have been an attractive platform for any of these things instead of their actual platforms if Microsoft had done things differently.
This is a classic jilted lover, fretting that he couldn't change her evil ways.
The country song of Open Source.
But I mean, seriously, he was lashing out at anyone who pointed out that a promise from Microsoft, even if sincere at the time, is still only a promise until it no longer seems in their own interest. And now, more in anger than sorrow, he's learned his lesson.
I'm thinking he'll need to re-learn it at least once before he'll have earned a VP title. Business is almost never for the idealistic.
I forget what 8 was for.
Could all of Microsoft's software patents be lost with Bilski? Then there wouldn't be any possibility for infringement.
Cross platform typically means running on platforms from more than one vendor. You basically said, "I can run my C# code on all these Microsoft platforms."
Well, to be fair, C accomplishes this with huge blocks of #ifdefs that are only preprocessed in for the appropriate architectures.
The code is certainly cross-platform, but the language itself isn't.
--Jeremy
Jesus was a liberal
NetBSD goes to great pains for such portability. Java has it by default.
A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
You should look up "Mono" in a Spanish to English dictionary.
Well, I am now enlightened.
How typical, fall back on the stereotypical Linux/GPer reason your product failed ... Microsoft is hurting us.
What a fucking cop out, if thats your excuse just shut the hell up and quit.
My company has an agreement with MS, I am in no way concerned for MS patent violations, I'm licensed, its not a concern.
I STILL WON'T USE MONO BECAUSE ITS CRAP. I'd much rather not have to deal with Windows servers and use Mono ... but Windows and the MS .NET implementation actually work. Mono doesn't even come close for anything larger than Hello World. And to be honest, I bet Hello World crashes half the time.
The GC is non-compacting so long running apps still require you to do memory management ... defeating the primary purpose of using the CLR for most people. Might as well use native C, it doesn't take 8 weeks to get the runtime to compile if you take that route at least.
Mono considers a framework or api supported when they've got stubs in for all the public methods ... even if those stubs do nothing more than throw a NotImplemented exception ... I realize you have obviously considerably lower standards for your code and projects Migul, but fucking NotImplemented exceptions means its not fucking finished.
Its got bug reports that have sat around for years to get minor patches such as the tiny little patch to get the SerialPort class to work on OS X ... the entire patch file is less than 20 lines or so, probably 3-5 actual lines changed ... just change poll to mono_poll to deal with the fact that OSX doesn't have a poll the mono likes. No one bothers to commit it ... so SerialPort is still broken in OS X ...
You know why people aren't using your craptastic pile of code .... IT WORKS PROPERLY LESS OFTEN THAN IT BREAKS.
Stop pointing the finger and use it to fix your crappy code base, the bullshit excuses your throwing out aren't doing you any good.
Make your framework and runtime actually work, stop trying to beat VisualStudio, its not going to happen, they have more resources, just as high of quality talent, and a WHOLE lot more motivation than you do. You won't win. Put your efforts into something actually useful to the project rather than producing another half ass unfinished buggy application. The damn thing doesn't even handle focus correctly if you click in the text window from another application while in debug mode for fucks sake.
When you use Mono, if you were going to report everybug you noticed, you'd spend a week reporting bugs before you even got to the point of running something. THATS why you aren't going anywhere.
No one anywhere who is considering Mono is worried about the patents, and thats not whats stopping them from using it. You might want to get some perspective ... your daughter is an ugly unreliable bitch and everyone else other than you knows it. You won't marrier her off until you make her at least as desirable as the other women.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
I hoped that this wouldn't start some type of language war. That was not my intent. If you want to develop a cross platform application that has a GUI and runs on multiple platforms, that can be done with many languages, but not as well as java.
So technically yes C can do cross platform stuff, as I am sure a lot of languages do, but creating a cross platform gui is a quite a bit more of a challenge. Yes I know that you "could" load things like KDE and like on various platforms, but for most people that is a real hassle.
The more I learn about science, the more my faith in God increases.
So you're saying Mono isn't an imitation because the people worked very hard while trying to imitate .NET?
Mod me down, my New Earth Global Warmingist friends!
Actually, the thing that really kills .NET for me, is when you try to install a service pack for .NET 3.5, even on a reasonably beefy dual core machine with plenty of RAM, MSI kind of goes out to lunch for about 30 minutes, disk is chewing away at god knows what. Holy crap what a bunch of voodoo.
How long does it take to install jdk 1.6.0 r17? 5 minutes? Tops?
(well, maybe we'll see how badly Oracle FUBARs java in the next few releases. . . )
These are my friends, See how they glisten. See this one shine, how he smiles in the light.
If you read closely, Microsoft admits that the reason Vista came out late is that they *tried* rewriting large parts of Windows in .NET, and cringed at the results.
So Microsoft has about $4 billion and 2.5 years of lessons in why .NET is not the shining city on a hill of programming.
So it's no surprise that they're quietly burying it, as they have so many names and hot technologies du-jour. Take a quick mental trip through the half-dozen Microsoft database connection technologies of yore.
Java embodys one radical change, and it's not a feature of the language (which was pretty radical itself at the start). No, the radical feature is that it's GPL'd. This change came a little late in the game, but look what it's produced already.
Take Android. You might say 'just another smartphone platform', but think about how it came about. Google didn't develop it. A startup did. And how was it possible for a startup to build an entire internet-capable touchscreen platform? GPL. Because they had a free OS they could use any way they wanted, and a free virtual machine they could use any way they wanted, they were able to get creative and package it all together as an innovative new platform. Google bought it, added polish and apps, and suddenly it's an iPhone and Android world with Microsoft playing catch up.
Microsoft can't do this. They are committed to their proprietary OS, so they are unable to harness any major creative leaps that come from outside the company. Outsiders can't play with the OS to tweak it to their needs, so they have no way to use Windows as a platform for creativity that doesn't fit into the channels that Microsoft provides them. Plus, they know that any really good ideas they develop on the Microsoft platform will likely be copied by Microsoft and never realize their potential (for them, at least).
But the Android folks could start with minimal overhead and produce something great under the radar.
That's the beauty of the GPL and the Linux (and now Java) models based on it. DVR's, netbooks, cheap wireless routers, smartphones, Kindle and 100 tablets to come. The Microsoft ecosystem is not capable of producing these things. So the next time you rag on Java or OpenGL, X-Windows or even OpenOffice - and rhapsodize about C#, .NET, MSOffice, etc., realize that you're missing the point. These tools may not individually be the absolute best in class, but they are all much more than good enough. And they enable the most creative and dynamic ecosystems in IT today. If you care about that, C# vs Java is a no-brainer. You're gonna want Java.
Miguel seems to be just now grasping this. He had hoped that a free version of .NET would be as good as Java. He liked the technology better (not sure how much better), and thought making it free would bring it to the creative class that's really innovating these days. But Microsoft won't let him. Never meant to, never will. Sorry Miguel - I feel your pain.
Posted from my Android phone. Oh, I can change this? There, that's better...
Are we going to see people back away from Mono? Are we going to see him back away from Mono?
Standard (ANSI) C is, as far as I know, the most cross-platform programming language that exists.
It has also been around for 38 years, and programs written in 1972 can still be compiled in 2010.
People keep telling me that I'm crazy for hugging my C compilers and not "moving up to the modern world". While the flavour of the week keeps changing. "Perl is the future!" "Java is the future!" "Ruby on Rails!"
C keeps chugging along and in most cases is actually back-ending the library or whatever that's being used to run the latest hot thing.
C may be the past, but it's also very much the present and will probably be the future as well.
Compiled C goes like a bat of hell compared to a lot of other languages. Many programs written in "those languages" incorporate C routines as well, for speed.
If you're a zombie and you know it, bite your friend!
Disclaimer: I work as a Java developer.
Java is freer than .NET, I'll grant you that.
However, Java manages to screw up language features, too.
Generics and the way they were implemented in Java 5 is the most obvious example. Rather than creating generics and adding full-blown support for them down the chain, they were implemented by erasing the generic type information at compile time, so that generics could be used with anything expecting non-generics.
Generics is one of the things that .NET 2.0 got right, with both compile-time and run-time support. Even if it did mean implementing a second set of collections.
Having said that, Java has also obsoleted some of their collections (Java doesn't deprecate classes, only makes them obsolete). For instance, the Vector and Stack classes are obsolete. The Dictionary interface and its Hashtable implementation are obsolete.
Now, to address the parts of your post that are flat our wrong:
Android, check. GWT, kinda check (it's a Java library, so why you included it in this list, I'll never know). GMail... [Citation needed].
No, seriously. Google has the largest installation of Python in the world. To the point where, in 2005, they hired Guido van Rossum, the guy who wrote Python. He still works there today.
Since Python has been Google's primary language for the last decade or so, I'm not just going to take your word for it that GMail runs on Java.
It isn't; Twitter uses Scala. So, while Twitter uses a JVM, they don't use the Java language. Also, Twitter's downtime was notorious in the past and isn't the example I would choose to use.
GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
Just about every normal OSS person has said that MS would do this. Hell, if you have a pedophile that has committed 100's of acts spread over 30 years and was caught multiple times, and still continues to do these acts, are you really going to leave your children with it just because it says that it will not attack your child? And yes, this analogy fits the situation.
I prefer the "u" in honour as it seems to be missing these days.
I provided some context to the SD times article on my blog today:
http://tirania.org/blog/archive/2010/Mar-25.html
Miguel.
still be so clueless?
OK, the Java world is blossoming. So that means Sun is doing great, does it?
Microsoft's relationship toward the .NET world is not driven by altruism. It's driven by the need to lock the .NET users into as much of Microsoft's product stack as possible.
Microsoft wanted to do to Java what it did to Netscape. Microsoft created a whole "Internet Explorer ecosystem" and as soon as it had most of the world locked in it stopped investing and bled that ecosystem dry. It only started moving again when users began to jump ship.
Microsoft's product strategy has always amounted to this: make it is to buy in, and hard to get out. That somebody working for Novell of all places doesn't understand that is a bit shocking. Microsoft took away Novell's bread and butter in the late 80s and early 90s essentially by making the case that you could have clerks run your servers rather than highly trained sysadmins.
This is not a "Microsoft is evil" rant. Microsoft does what most businesses try to do: maximize profits by evading competition.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
I think Miguel just opened a Window, looked towards the Vista, and finally took notice of the tiny patent lawyers infesting his garden.
.... then you agree that ext3 is an imitation of FAT32? - That is clearly not the case. Mono is a framework that implements the functionality of the CLR much in the same way that systems may implement LDAP. They are not "knocking off" Active Directory by implementing functionality of LDAP, they are building systems to be compatible with protocols, standards, formats and guidelines. Give credit where credit is due - even if you don't agree with the motivation.
Having just spent the last several months coding in C#, I can fully state that C# is far inferior to Java, and provides even less type safety than Java.
I'd love to hear how and why you think that C# is more advanced and superior to Java, or any other language.
The cesspool just got a check and balance.
Was IronPython an imitation of Python? No, it's an implementation of Python using the .NET clr.
Mono is an implementation of the .NET CLR...not an imitation.
Look at him Go!
Many many people pointed out that Microsoft was going to see Mono as nothing more than an opportunity to legitimize .NET, and do everything they could to lock people in to the "real" .NET platform... legally, socially, and technically.
And this is what has, in fact, happened.
C code is supposed to be source portable across multiple environments running on similar architecture. As soon as you start crossing multiple architectures the code turns into a massive clusterfuck of precompiler directives.
Java would be more cross platform than c.
Java has binary cross platform compatibility, not just source cross platform compatibility.
Except C++ requires a re-compile for so
much as moving from the intel to sparc version of the same OS. Massive difference.
I can dabble with java desktop apps now. Where are the C based or win-based cross arch equivalents?
A Pirate and a Puritan look the same on a balance sheet.
I learned a long time ago that the portability grail is bullshit.
Yes, Java does offer the ability to run apps unmodified on many platforms and configurations, but it does so at a cost. While getting the same level of targeting in a language like C is more difficult, you can do much more with C. You arent constrained by Java's idea of a GUI. You arent constrained by Java's notion of endianness. You aren't constrained by Java's notion of floating point formats. This goes on, but i'll spare you.
In most cases, a programmer needs to support exactly 1 universe. In most of the remaining cases, there are no more than 3 similar universes to support. For most people, [pick a language] plus platform specifics is perfectly fine. For most of the rest, [pick a language] plus a ported toolkit and some preprocessor tests is fine. Java doesn't offer the first group much of anything, and is simply a tradeoff for the second group.
C# isnt Java. Who the hell cares? Really. Most programmers hate both.
I'll take language choice over "portability" any day of the week.
"His name was James Damore."
I'm pretty sure that some of those are different platforms.....Xbox vs PC vs Windows Mobile at a minimum. All three run different OS code bases.
http://en.wikipedia.org/wiki/Cross-platform
PowerPC(-ish) vs x86 vs ARM
Running in Silverlight and the Database could be counted as different operating environments depending on how you view it......but that line is blurrier.
Less type safety? Huh? Closures, real generics, delegates, LINQ just as starters. Claiming C# as a language is not superior to Java is not a matter of opinion, it's simply not correct objectively - it's a non-fact.
With the crowd above, that's clearly a silly analogy. Microsoft wasn't involved. Excuse me while I use bash (a knockoff command prompt) to start Xwindows and Gnome (a knockoff Windows 7) and fire up Firefox (a knockoff Internet Explorer) to play Frozen Bubble (a knockoff Minesweeper) while Rhythmbox (a knockoff Media Player) queues up my mp3's (a knockoff of WAV).... or something...
I feel kind of bad for Miguel, he sounds like a kid, who just realized that there is no Santa Claus. It's sad.
You can't handle the truth.
Unfortunately, even the most studious lack of infringement won't prevent you from getting abusively sued into bankruptcy. It's all about the implied threat, Miguel.
-- B.
This sig does in fact not have the property it claims not to have.
Java apps usually use some OS specific stuff as well. Virtually every mainstream Java program uses an OS specific installer for instance. And if you're distributing a different installer for every platform, you may as well compile it for every platform.
As for C based desktop apps with cross-platform capabilities, might I point you in the direction of a little thing called Firefox? Yeah, it needs certain libraries coded differently for different platforms, but as noted, so does Java.
$_ = "wftedskaebjgdpjgidbsmnjgcdwatb"; tr/a-z/oh, turtleneck Phrase Jar!/; print
It was more than just desktop x86.
It also meant that you could run such apps on desktop Itanium (remember, when .NET came out, Itanium was supposed to be the next big thing,) or any other architecture that MS decided to move to.
MONO is (supposedly) very well engineered, but it's always going to be hard for it to keep up with MS. Obviously no one can "predict" what MS will do next.
I agree. While java has made it possible to get the "same" (used in it's loosest definition possible) code to run on multiple platforms, in doing so it has turned an impossible task into a difficult one. The reality is that it can creates more work in many contexts. As examples: the equiv. of DLL hell in trying to get external dependencies coordinated (java libraries or 3rd party components) and also the accounting for sometimes nuanced sometimes not issue of talking to hardware behind the OS or other OS specific interfaces. If it were impossible you wouldn't have to do any work, now that it's possible there's an expectation that it'll happen.
Well, explain then how I could assign a string to a List or a Dictionary to a string in C#? Yes, it's true - there's no runtime checking in the CLR. Those "real generics" are not what you think they are.
Delegates? Please, just fancy syntactic sugar for the adapter pattern.
LINQ? I'm not sure that's a thing I'd want in my codebase, ever. Just think of how much "great" SQL code is hopelessly broken and unmaintainable in current codebases.
So, out of all your statements, the only thing that holds water is Closures, which have been debated for a while and are already partially functionally available (anonymous inner classes) sound like they're headed for us in Java 7.
And then speaking of deficiences in C# - what on earth are those horrible collection classes? Those have to be about the worst and most rudimentary collections classes I've ever had the displeasure to use. And what about the string manipulations? You wind up practically having to do an extra computation on every call, because instead of going from index 1 to index 2, they want index 1 and a length....
The cesspool just got a check and balance.
Delivering an implementation of a standard specification is distinctly different than "imitating.". It's one of the reason such specifications are created- to facilitate other implementations. There are a few examples of this sort of thing in IT. You might want to take a look around.
Most Java code is distributed as simple executable jars. But in case your users prefer installers, there is InstallAnywhere which like the name suggests installs your app on any OS with the minimum required JVM from the same installer package.
As the island of our knowledge grows, so does the shore of our ignorance.
I have to have four different intalled versions of .net installed on my work computers because .net is a piece of shit. One version of javacan handle backwards compatibilty. However .net programers lock their apps to one specific version and thus you become requried to have installed every version of every .net library just to maintain compatibilty.
I have heard of that happening the java occasionally. With .net it is standard
i thought once I was found, but it was only a dream.
I think what is more expected of something "cross platform" these days is being able to install the sandbox on any machine - without encumbrances. .NET's CLR cannot install on platforms not directly or indirectly supported by MS itself.
Silverlight, SQLServer, WebApp are all examples of embedding, not cross platform. The platform is the hosting stack that mitigates hardware resource contention.
I think of cross-platform as in: Palm, IPhone, Android, OSX, Linux, AS/400. Mono is one path to these, but de Icaza knows the devil in the details: less-than-full .NET framework has been made available without open licensing to his project.
Delphi was a cool tool, but VB was already entrenched when Delphi came out, which is (at least partly) why Delphi never became popular; Delphi was a response to VB, not the other way around.
An installer is not a library included in the program. The app isn't using it at all. The installer is merely there to get the app on your system and set up your environment variables, icons, links, etc.
A java app can be deployed to any platform without an installer, either as an executable jar or as a collection of class and resource files (often including .sh and .bat scripts to make launching the program in common OS's a little easier).
The funny thing is that the most notorious example of your multiple install problem was Microsoft's Java runtime environment.
They broke it on purpose, causing you to need both Sun's and Microsoft's installed because some apps used Windows only technology.
So I guess what's old is new again.
Mod me down, my New Earth Global Warmingist friends!
Windows Phone 7 runs on WinCE 6.
Well, explain then how I could assign a string to a List or a Dictionary to a string in C#? Yes, it's true - there's no runtime checking in the CLR. Those "real generics" are not what you think they are.
Provide code example, please. I've never seen the compiler allow such idiocy, except when using Reflection.
For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
Comment removed based on user account deletion
Twitter was using Ruby and they found out the hard way that Ruby doesn't scale (unless it's JRuby) and they switched.
Mod me down, my New Earth Global Warmingist friends!
Hello. My name is Miguel de Icaza. You killed .NET. Prepare to die.
You see? You see? Your stupid minds! Stupid! Stupid!
I've always said that 6502 Assembly is the most crossplatform language ever.. there is an NES emulator available for far more platforms than the JVM.
Windows can run on routers and smartphones and so can some other proprietary operating systems. I'm not sure why people think this ability is exclusive to Linux. As for Microsoft they can afford to hire top talent to handle the creativity. FOSS advocates forget that creative people need to eat too. Why haven't all these creative outsiders fixed Java? It still sucks on the desktop compared to .net and everyone knows it. But if you want to keep pushing it for non-technical reasons then go ahead, the business world has moved on and I don't see many FOSS applications being written in Java either.
which you should have read about before trying a port. I'm not even sure why you would bother in the first place when you can get a cheap Windows host for 10 bucks a month.
.NET is not made for idiots, it's made for professional developers who can utilize it properly. Professional developers who know what they are getting into and read faqs before porting to a platform that is filled with hacks:
Why does the memory consumed by the Mono process keep growing? Mono currently uses a conservative, non-moving, non-compacting garbage collector. This means that the heap is not compacted when memory is released. This means that applications can produce memory Why does the memory consumed by the Mono process keep growing? It is hence important to not get into patterns that would create these holes, for example such a hole could be created if you create a block of size SIZE, release it, and then create two blocks of size SIZE/2+1. patterns that will effectively make the process grow, just like C, C++, Perl, Python applications would.
http://www.mono-project.com/FAQ:_ASP.NET
My local B&N sure has a lot of .net books for a platform that is limping along.
Will it also synergize market driven realities? Or will it cause partial irrelevance?
It's the only way to know for sure.
.NET has been a success for Microsoft and they never cared about putting it anywhere else than Windows. They don't want you to use other platforms, Windows is where their money comes from.
It was through reflection of a method call IIRC, and in this case the method returned an object that wasn't of the correct type. However, you don't get an error until you try to use said object, which was quite disturbing as it was passed through several methods (all typed) before attempting to be used.
That puts C# on an even less type safe platform than java. In Java, trying to assign such an object at runtime will immediately cause a ClassCastException. C# has no runtime type safety.
The cesspool just got a check and balance.
As a software engineer that primarily writes transportable code and hardware drivers. I disliked learning software only frameworks because they are artificial and change too often. chips are more stable. From the outset .NET made the hairs on the back of my neck stand on end. The idea that the software engineers could not be trusted to write unmanaged code was insulting and arrogant on Microsoft's and Intel's part. The licensing restrictions on the example cli runtime told me early that we would have trouble staying transportable with .NET. ECMA was a joke from the start and I had trouble understanding why people couldn't see it. The idea that Visual Basic was the best langauge for writing Windows programs said a lot about WIndows as a platform. I wrote the Mono people about my concerns and they did not respond. I wrote the DotGnu people about my concerns, and they didn't respond either. In the end, I just didn't bother to learn .NET because the versions came too fast and I couldn't afford to buy the reference documentation every time the changed the framework. In my mind, Microsoft shot themselves in the foot first, then released .NET. They just kept their foot wrapped in ductape all this time and didn't mention they were bleeding. It was dead from the start, but the body took a while to stop moving. This is my opinion, and I stand by it.
I know I know don't feed the trolls, especially the slow ones....
You're not making any sense. This is nonsensical. Assign a string to a List? Huh?
Yes, it's quite possible, through reflection. What's worse though in C# is that the incorrect object can then be passed all over the place as the "type" that it's not until you try to use it. How did you sum this up? Oh yeah: "Huh?".
Delegates? Please, just fancy syntactic sugar for the adapter pattern.
Right, the same way a "Class" is just fancy syntactic sugar for a pointer to a structure amirite? Shit, C does everything we need then, I guess. Ridiculous.
delegate->adapter/proxy method is like waffle -> sugar cone.
Class-> pointer is like House -> stick.
But I'm sure those are just minor differences to a stellar intellect as yourself.
I'm getting the sneaking suspicion that you don't know what you're talking about, and that in addition you're defining anything not in Java as not being useful or good, which is a bit circular.
Well at least you have a suspicion of something.Too bad its misplaced.
Just because something might look good at first glance as making all those "hard things" go away by just using some pseudo code is really just a short cut that experience has shown will bite you in the ass later sooner or later.
I'm also solidly against hibernate, spring, and several other frameworks that purport to do similar things - removing all those "hard things' so I won't have to worry about them. They all suck royally, as you'll find out in phase 2 or 3 of the evolution of your product when gee, it just doesn't do this one little thing... and then it doesn't do that one little thing, rapidly snowballing into a bigger effort than the original work would have been.
Yep. Since Java's getting them, closures are OK, huh? Sweet logic.
I'm undecided actually, and don't know that depending on which of the three flavors they choose that it's going to make all that much difference other than stating "Java has closures" much in the same way many feel about generics. (And yes, generics suck too in some cases. Mostly they're helpful. And after my run ins with C#'s lack of runtime type checking, I'm willing to bet the same deficiencies with generics exist for them too)
Their collection classes are fine. Oh, and they have generic runtime collections. Does Java? Oh, it doesn't? As for the string index, that's truly idiotic. Going from index 1 to index two is (2-1), if you call subtracting two numbers in your head a computation I think you make have larger issues.
C# collection classes blow. I have to check before adding (and remove if found) or getting a value or it throws an exception? You're kidding, right?
As per the earlier statement - there are no runtime checks in C#. So it doesn't really matter whether they are runtime or not. And yes, if you want, you can create runtime generics or any code at runtime if you'd like, or even alter existing classes. (Not generally recommended, but it can be done)
So, care to show any other areas you're a little thin on? I can't wait to see a scintillating "Duh" or the like.
The cesspool just got a check and balance.
After years of free software advocates pointing out the dangers of .NET clone Mono and consequent belittling by Microsoft apologists, Miguel finally comes to his senses. (This follows up on GNOME removing spatial browsing as a default in Nautilus.)
Well, better late than never.
I'm not a lawyer, but I play one on the Internet. Blog
Because if Stallman is ever admitted to being right, then the world of the MS followers will collapse.
Stallman is indeed like Jezus. He upsets people with what he says, destroys the comfortable little cocoon they spinned around themselves.
Just as most Christians are not followed of Jezus teachings, a lot of people in IT are aware of the risks of closer source and single vendor, but survive day to day by pretending MS somehow doesn't qualify.
Icaza drank the koolaid, and now that he is twitching on the ground, it is slowly beginning to dawn on him that perhaps he make the wrong choice.
To deal with MS has always been to make a deal with the devil. Not so much because they are evil, but because they canabalize their partners if they get the chance. MS serves itself. Always. If you want to deal with them, then always ask yourself: How can I benefit AFTER MS has benefitted first.
It is like going to a casino. Sure you can win big. But you better realize that the casino will winner bigger. Always. It is how the world works.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
Given that you've always been enthusiastic about the technical aspects and ideas of .Net and have managed to build an impressive re-implementation of .Net in FOSS, have you considered dropping the focus on .Net compliance?
After all, MS governance of the .Net ecosystem is laking, as you say. And from what you say it sounds very much like I'd expect it to be: That following .Net everywhere it goes is more trouble than it's worth. On top of that, from what I can tell Mono has gained solid traction in the development world all by itself and on its own merit.
This all together with the solid marketing the mono project does all by itself I can't shake the notion that by now de-prioritizing .Net compliance in Mono would actually give Mono adoption a boost.
What is your take on this?
(And, btw., thanks for the Mono toolkit. I've actually gotten curious about C# all because of it and the Monodevelop IDE.)
We suffer more in our imagination than in reality. - Seneca
I agree with the sentiment in general, but:
It has also been around for 38 years, and programs written in 1972 can still be compiled in 2010.
is not so true. Finding now a compiler for anything different from ANSI C/C90 or C99 is quite hard if possible at all.
C may be the past, but it's also very much the present and will probably be the future as well.
C imo is perpetuated by the business-driven evolution of programming languages, making it sole remaining language for any kind of system programming. One still has to have OS/drivers/etc to run all the cool and modern programming languages.
All hope abandon ye who enter here.
Java programs are portable only to the platforms which are supported by JRE.
And the list is very very short. Especially compared to the list of architectures supported by e.g. GCC.
So you have to pardon me for claiming that C is more portable than Java.
All hope abandon ye who enter here.
The GP was talking about deeper OS integration. Stuff like properly integrating with Mac OS X menu system or Windows taskbar/tray or KDE or GNOME.
That is not part of Java and is not portable.
All hope abandon ye who enter here.
If you want to develop a cross platform application that has a GUI and runs on multiple platforms, that can be done with many languages, but not as well as java.
Cross platform GUI in Java is easy - as long as the platform is Windows.
My colleagues develop and maintain (for very long time now) internal GUI application written in Perl/Tcl/Tk. In past 10 years there were no single OS where they couldn't run it or integrate it well with OS.
With Java, you get the same - M$Windows - look and feel regardless of a platform. It looks kinky on Linux/*NIX and totally bogus on Mac OS X.
All hope abandon ye who enter here.
You make a valid point, but some of your examples....
char is 8 bits, or that a NULL pointer is represented internally by an all-zeros bit pattern
'char' is 8 bit. Always. Everywhere. Any other chars are broken by definition. See also: wchar_t.
NULL is a "#define NULL 0" - because C has two different 0s: (1) zero as number 0 in arithmetic operations and (2) zero as a NULL pointer which C is obliged to present to program as 0 regardless of how pointers are implemented in underlying architecture.
bogus assumptions about the size of primitive types, or about conversion between types
True. It's still beyond me why people frown at <stdint.h> and <inttypes.h>.
All hope abandon ye who enter here.
The JVM source code is available to be compiled on any platform. Its licensing isn't nearly as liberal as gcc though.
c through gcc may target more platforms. Though I would challenge you to write a non-trivial c program that compiles and runs on each and every one without modification.
Business solution (>10K files) sold by my employer is written in C/C++ and compiles and runs on pretty much any 64 bit *NIX system. 64 bits is a requirement since usual memory consumption is in dozens GB area. *NIX is not a real requirement: there are simply no hardware platforms for Windows with level of support often provided by the *NIX vendors e.g. 10 year OS/hardware support contracts. The M$ itself on general basis doesn't support the Windows that long.
Or to sum up: once you learn to write programs in a portable fashion, it is very very very easy with C/C++. (Just look at Debian and the hoards of C/C++ programs running OK on all supported platforms.)
All hope abandon ye who enter here.
Microsoft's path through history is littered with the bodies of businesses that partnered with them, each one with a dagger in it's back.
"And the list is very very short."
Good thing that you then posted it here. (since it is so short, after all)
So you were infected by tomboy trojan and all you need is switch to gnote.
Rest are depending things, not big deal.
"Hey, cave-man! Hold on to that emacs/vi editor and your command-line dev tools using primitive languages like C++; the rest of the world will move on with modern tools."
Newer is not always better!
I've grown up with DOS and started using Linux when win2k came around.
Since then it has gotten so much better every year. I don't know if/when it will be the year of the Linux desktop and I don't actualy care. As long as it is useful for me I'm happy :)
That said (I was getting a little offtopic) I've more or less grown up with a GUI (win9x was when I had my own PC) and I preffer the commandline to the GUI because once I learned it, it was so much better.
Linux is advancing soooo fast; you should check it out annualy to keep up with the current state of critisism ;)
Here be signatures
If you're using Reflection, no. But then that's because if you're using reflection you are deliberately circumventing all kinds of stuff - did you know a class created via Reflection doesn't even run the constructor?
For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
Java: Write once, pray many.
This comment is my opinion and does not represent an official position of Donald Trump or others I do not work for