Mono Project Releases Version 1.0 517
theblackdeer writes "Just poking around the go-mono.com Mono website; it's now the multi-colored mono-project.com. Even better, it updated before my eyes to include the 1.0 release. Screenshots are (slightly) updated, too. Mono 1.0 includes the Mono Develop IDE (based on SharpDevelop, I believe). Download now and start your GTK# engines!"
Alliante adds "You can download the Release Notes and the Packages on their website."
How important is this for Linux? (Score:5, Interesting)
A open source RAD evironment sounds like it could have a huge impact on the number of apps that could be rolled out.
Not so much for the enterprise market, but also for the 'shareware' class applications. Most of my Windows specific applications are programs that are from very small development houses or shareware products. (I love to support a small shareware author!) . I use open source when prudent, but I also love to use a nice simple tool that even if it costs $15-$20 bucks to a pay-pal account, is money well spent in my opinion. Maybe Linux will start to attract this development base with Mono.
Another question, I have a pro version of C# I picked up at staples last year. Anyone know how realistic is it for me to build an application in Windows using my copy of C# and compile it and run it on mono?
Congratulations Mono team (Score:2, Interesting)
I now await the FUD machine.
CLR is good stuff... (Score:3, Interesting)
I think someone is working on a Ruby to IL compiler, but I failed to successfully Google it...
How can Miguel say that Mono is independent.. (Score:1, Interesting)
Why .NET and not Java? (Score:5, Interesting)
As has been pointed out ad tedium in various Java-related discussions on /. - Java's early reputation for poor performance may have been
justified in the 1.0 and 1.1 days, but modern Java VMs employ
sophisticated JIT compilers which gives it comparable performance to
natively compiled languages like C++, and easily matches .NET's CLR
performance. Java's bytecode and .NET's bytecode are not that different, the main differences are in the APIs.
Which brings us on to the second justification for .NET over Java, native GUIs, which is even weaker. Java-Gnome [sf.net] does the same thing as
Mono's GTK bindings, offering exactly the same GUI abilities, and SWT [mindprod.com] offers a truely
cross-platform GUI API with a native look and feel on each platform it
runs on.
Go Cross-Platform! (Score:5, Interesting)
Re:Why .NET and not Java? (Score:3, Interesting)
Yes, it's unfortunate, but at the time the mono project started, those statements were true and were good justification. However, as time progressed and java stabilized as a great programming language, different reasons for pressing the mono issue came to the forefront.
Like it or not, this is an MS dominated industry, and they're going to be pressing
In the end, it's probably good to have both; more cross-platform implementations are better.
Dashboard (Score:5, Interesting)
Given that my main OS is Windows (sorry), is there anything like this for it?
Comment removed (Score:5, Interesting)
Re:How important is this for Linux? (Score:5, Interesting)
When the windows desktop market was the size of the current linux desktop market (not in terms of percentage, of course, but numbers) there was a huge market for shareware. Why doesn't that market exist for linux today?
One reason could be the technology, which you've addressed, but IMHO the main reason is the economics. A while back, in a newsforge article [newsforge.com] I analyzed the situation and suggested how to create such a market. I was quite taken aback by the feedback, which consisted mainly of semi-coherent rants saying "shareware is teh evil!!!" and "kill anyone who dares to suggest proprietary software for linux!!" and so on, despite the fact that what I proposed would have the side effect more open source software getting written.
The linux landscape is changing, its going mainstream, and there are a lot linux users who don't like that. I must humbly suggest to such people that you cannot do anything about it, and you should therefore either accept the reality or start moving to another system where you can feel more "l33t".
Free as in 'Free from vendor lockin' (Score:5, Interesting)
This is a problem, Microsoft is not nice.
Microsoft can take it into a direction where MS holds patents & IP protection (if it doesn't already which is very unlikely). Mono will either have to follow and lock its user in, or go in a separate direction and abandon any pretensions at cloning MS
What I think they should do is embrace and extend the the
That way the MONO implementation of
Java Ruby bridge (Score:3, Interesting)
Once they figured out the CLR is really meant to run C# apps and they would have to drop interesting Ruby features, they probably gave up.
BY "Supports other languages", the CLR really means "Supports migrating other language developers to C#".
PPC Support (Score:3, Interesting)
what I want to know is (Score:1, Interesting)
I would love to be proven wrong and shown my fears of M$ pulling the rug out from Mono is unfounded and totally paranoia. Psychologists have a saying, "the predictor of future behavior is past behavior." If that statement is true, it would suggest the fear of M$ misbehaving is a matter of when and not if.
Java's performance is vastly overstated (Score:2, Interesting)
I also run ed2k_gui (the Java frontend to overnet). I cannot run both of these apps at the same time if I want my system (1.2 GHz, 256 MB RAM) to be usable.
Re:Why .NET and not Java? (Score:5, Interesting)
That said, this is the first time I've seen a post of yours that has some merit.
I've been coding in Java for more than 6 years now, and I guess I've just gotten really comfortable with the language. I've also been using linux for several years now. The last few years has seen good JVMs & IDEs available for linux, so I've kept developing with it.
Recently I've become involved in setting up K12LTSP networks. I started a project [sourceforge.net] that's windows companion CD of software the students will be using at school on linux.
I wrote the graphical installer in Java and it took me no time at all. Its XML based and exactly what I wanted.
One problem, I have to bundle a vm to make it autorun.
Your mono stuff looks like it can do this and totally open source. I'll have to get use to some new libraries and what not, but if this works out, I'd be really psyched about your project.
Anyway, keep up the good work, and congrats on 1.0 !
Re:Some please explain to me (Score:2, Interesting)
But
And still not worry whether it's OSX, WinXX or *nix.
For me, this is all about choice, (minimizing the risk of a little fling) and leverage.
Re:Why .NET and not Java? (Score:5, Interesting)
Smells like trolls 'round these parts.
Here are sourceforge's statistics on GTK#. [sourceforge.net]
Here are sourceforge's statistics on Java-Gnome. [sourceforge.net]
What criteria are you using to proclaim Java-Gnome dead? From the statistics on sourceforge, it seems that there is interest in the project and far more reports of bugs than for GTK#.
I agree that Sun hasn't been as cooperative as I'd like to see in terms of Java's relationship with the open source community. However, I think you are making some baseless assertions about the current and future relevence of projects supporting Java in the open source arena.
Also, I think it is laughable that the mono team claims "Java applications do not conform to the Linux GUI look and feel." Which look and feel is that, exactly? KDE? Gnome? FVWM? The majority of Linux apps that I use do not conform to any single look and feel. OpenOffice? Looks like Windows 95. Mozilla/Firefox (by default)? Completely different (though skinable). Sure, Mono, with GTK# looks like a Gnome app, but that really isn't going to help a KDE or FVWM user, is it?
Much of the anti-Java sentiment around slashdot seems to originate from rabid pro-open source ideology. I wish people would evaluate these technologies on their capabilities and applicability rather than whether the companies supporting them conform to their particular ideology.
Taft
Kudos to the Mono team (Score:2, Interesting)
I have been a pretty vocal detractor in the mailing lists about the lackluster attention paid to the OS/X port, but this release is really a huge milestone for the team, and they deserve a round of applause.
Kudos to Miguel, Nat and the rest of the team for getting this shipped. The Linux port is rock solid.
Now, if I could only get monoDevelop to run under OS/X without having to jump through endless hoops, I would be a happy man...
Runtime Distribution (Score:5, Interesting)
This Mono 1.0 release seems to be developer-oriented. Will they (or someone else) be creating smaller runtime packages which only include the stuff necessary to run applications?
It would be nice if there were an easy install package for Win32, too. This might seem pointless on the surface, but Microsoft.NET won't install on all Windows systems due to deliberate barriers, plus Microsoft's distribution does not come with GTk# and so forth.
I'm installing the full release on my main system, but it'd be nice to have a smaller runtime package that I can put on my other boxen to run any apps I create. Perhaps in a few hundred years Debian will have a runtime package which can be depended on by mono apps without having to pull in the whole development environment. (mono-runtime vs. mono-devel, both depending on mono-common)
(I see a page about the Mono runtime but it's talking about the runtime portion of the project rather than a specific runtime distribution.)
Re:How important is this for Linux? (Score:4, Interesting)
That's politics, not economics.... and Shareware's only bite is in closed-source non-free software.
The shareware model has generally proven ineffective. It has the maintinence problems of closed source along with stunting growth of other software by leveraging the effect of "market dumping".
I'd like to see more creative models, like the one where the author sets a "freedom" price on the software and people contribute to having the source code released under an open license. I think people would feel better contributing cash to a project if they knew it wasn't going into a vacuous pool.
Not true... (Score:3, Interesting)
I know this because to run Java on FreeBSD you have to compile it from source, which you have to download from sun independantly and then patch.
Care to give me the URL of the C# compiler and the CLR source code? No? That's becuase they exist only in your imagination.
Fear not.. GJC is the cure (Score:1, Interesting)
Re:How important is this for Linux? (Score:4, Interesting)
I think it's mostly the matter of extra options and personal choice. For instance, coming from a C++ background there are several things that I feel are "missing" from Java (default arguments, enums, operator overloading, etc.) and thus I am partial to using C# that has most of what's missing. A good cross-platform
(My intent is not to start a Java flame war here; this is just my opinion.)
Re:Runtime Distribution (Score:2, Interesting)
Perhaps this will happen sooner [debian.org] ;) Anyway, if you like it to happen soon, why not join the Debian mono package mantainers?
Re:Why .NET and not Java? (Score:3, Interesting)
And Sun's 1.4.2 also has:
Swing
Release 1.4.2 includes many bug fixes and these major enhancements:
* The Microsoft Windows XP look and feel. If you are using the system look and feel on the Windows XP platform, Swing components now match the platform.
* The GTK+ look and feel. You can now customize your look and feel to a particular theme.
Which means the look/feel argument for
-Charles
Re:Why .NET and not Java? (Score:2, Interesting)
Since you know something about JIT compilation and GC, I'd like to ask you about the actual benefit of value types. At first I thought they were great but now I'm not so sure. There appears to be a couple ways to solve the GC and performance issues without creating a user-visible partition of the type hierarchy (and the potentially error-inducing difference between copying references vs. copying values).
Escape analysis [leeds.ac.uk] can be used to figure out when an object stays within the bounds of a single thread's stack. That way, many objects can be allocated on the stack automatically.
Also, if the compiler can detect that a class is immutable, then the it would be free to copy instances around when they're sufficiently small (instead of passing a pointer).
Those two optimizations seem to be feasible, though the first probably requires intra-procedural analysis to perform well. Are there benefits to value types that these two optimizations don't nullify?
On the topic of Generics, the CLR implementation has a lot of advantages over the Java implementation (I especially like the runtime specialization for value types). However, currently Java has the convenient notion of covariance and contravariance of type parameters (though they chose really, really bloated syntax). This is one of those features that I expect will make it into the CLR pretty soon (or maybe it'll stop at the langauge level) because MS seems to have no problem adding features, which, as a side benefit, also pushed Sun to start adding stuff!
Offer Indemnification! (Score:1, Interesting)
Re:Why .NET and not Java? (Score:3, Interesting)
For example, in Python (the only interpreter I know under-the-hood), a simple int has to deal with refcounting, next and previous objects in the garbage collection chain, and a host of other issues because it is an object.
Am I understanding this right: In the context of these newer languages, the feature that is desired is the ability to have local, generic structures rather than full blown "objects" to avoid all this overhead. So that a struct is just a shorthand collection of a few primitives?
Re:ah, the joys of playing catch-up (Score:3, Interesting)
If the community were smart, they would take Miguel's suggestion [ximian.com], and start on a competitive stack. Perhaps something that extends SVG to allow binding to
Re:Why .NET and not Java? (Score:3, Interesting)
Most API's in both Java and
Which is not the point. These operations still take up memory in your address space that is managed by the garbage collector. And since a paint routine is not a usually a single line the chance that the GC could decide to collect in the middle exists.
For short lived objects where there is no API its best to reuse objects rather than create new ones since in both languages the allocation process hits performance much worse than the deallocation process.
I can't speak for Java, but for CLR apps you are dead wrong. Allocations are made linearly from a contiguous chunk of memory (managed heap) that the GC holds. You ask for MyClass and it gives you the next availible slot of memory in it's heap, and updates the startpoint to initial + sizeof(MyClass). Hell, its faster than a C runtime call to malloc because it doesn't have to go sniffing around for a large enough block.
The perf hit comes when it's time to deallocate. Remember, though that deallocations are non-deterministic and happen when the GC needs more memory. So although you will not see the performance hit when an object goes out of scope or when you call it's finalize method you still don't have a perf hit. Only when the GC cleans house. At this point (which should still be considered deallocation, even though it's usually an allocation that prompts the event) things slow down. All object trees have to be walked and those that are unreachable are collected and the managed heap compacted.
What value types do is bypass the garbage collection. Never adding items to it. Making it so that the collection phase does not need to happen nealy as often. They are also faster to allocate and take NO TIME to deallocate.
Not a clue on how the Java GC works, so instead of making assumptions I'll just leave it at that.
Java 1.5 (now at beta 2) generics are a part of the VM. It also supports auto unboxing like
*SIGH*. No, they are part of the COMPILER. Which generates a load of shit bytecode with tons of typecasts that ARE bad for performance. See, the VM RUNS the bytecode. The Compiler MAKES the bytecode. In
Re:CLR is good stuff... (Score:3, Interesting)
But it seems that the dream of great language interop has not been reached even with .NET - look at the work Nat+Trow are doing with Beagle/Dashboard. Rather than use the .NET CLR tools to reuse the Lucene search engine (written in Java), they forked it and rewrote it in C# - why?!
I see this even more. Interop is great in theory, but lacking in practice. See how they started out by using libxml/libxslt to implement the System.Xml APIs and then abandoned that and wrote their own in C#, partly because C interop was not good enough/high performance enough.
To be frank, I think Mono isn't going to unify anything. People will still code in C, C++, Python, C# and so on, and they will all be running in their "native" forms. So we just have yet another platform that needs to be bridged for useful work to get done (via some kind of COM-like technology).
Re:Licensing concerns abated (Score:3, Interesting)
If this looks like nit-picking, consider the implications for porting a Dotnet app to Mono: if 80% of API coverage is achieved instead of 100% it could easily make the port uneconomic.
This is the problem with the Mono value proposition - it drops exponentially in relation to compatibility, and you don't have to drop far until you've brought the whole cloning strategy into question, the question being whether there was a need to make Mono any closer to Dotnet than Dotnet is to Java.
Re:Interpreted languages (Score:3, Interesting)
If only they'd thrown their weight behind a Python Gnome, and made that the standard language...
I noticed in Miguel's post that he posited that you wanted real arrays of ints for speed reasons, instead of arrays of integer objects. But in a large application, speed is more commonly gained by doing intelligent caching - something easy in Python, but brutally hard in C# or C.
And there's no Patent issues or other nonsense.
Re:Licensing concerns abated (Score:2, Interesting)
Re:How important is this for Linux? (Score:3, Interesting)
But I didn't say that I'd prefer to stay the way we were, I said I'm all for Linux's growth. I'm just dreading the day that I have to start dealing with this stuff in the Linux environment. A good comparison, I think, is going from the early days of the Internet to now. Sure, we have lots more content and the ability to order plane tickets, but then we have spam, pop-ups, etc.
Hopefully the existing Linux communities (like Gentoo, which I use) will keep things together.
Cheers