The Mono Project: You Might Expect the Unexpected (Linux Journal)
Back in February, Ralph Green asked me to speak at the North Texas Linux Users' Group. I discussed Linux administration and then took questions. Some one in the audience asked me about Mono. I gave a cavalier answer having a bias against it. Then someone else in the audience said that I needed to get my facts straight."
Posted Oct 2, 2007 17:30 UTC (Tue)
by allesfresser (guest, #216)
[Link] (4 responses)
"The problems with C# are many, however. First and foremost, is the fact that MS controls the language. MS could at any time decide to break compatibility with the ECMA specification, in the name of 'innovation', and that would leave Mono out in the cold. They would have to choose between staying true to the ECMA specification, which would eliminate the second benefit described above, or try to stay in sync with MS's implementation which would likely require some form of licensing from MS, which would of course further MS's ends and hurt free software in general. I think it is a given that Mono would choose the latter option since it is already trying to do just that with portions of the C# stack that are not part of the ECMA specification, and because Novell has shown itself to be more than willing to cooperate with MS at the expense of the free software community."
Posted Oct 2, 2007 18:57 UTC (Tue)
by alankila (guest, #47141)
[Link]
I'm not sure whether Mono is strictly a competitor for Windows OS. Clearly, Microsoft has an incentive to make switching from their expensive servers to commodity ones more difficult. But on the other hand, I bet most software written for MS platform gets hopelessly tangled with the system's other software anyway, and Microsoft doesn't really need to make switching any more difficult than it already is.
Finally, I'm not so sure that Mono is so controlled by Microsoft. It's obvious that whatever good Microsoft does to .Net, the mono project will attempt to emulate, but there is nevertheless a growing body of work that has nothing to do with Microsoft, for instance the applications of GNOME desktop. These applications and others made for Linux only make the case for Mono as an independent, viable platform.
Posted Oct 3, 2007 6:37 UTC (Wed)
by epa (subscriber, #39769)
[Link] (2 responses)
I don't think you can argue based on what Novell 'would' choose in the future, or that any hypothetical future change to .NET 'would likely' require some form of licensing from Microsoft, and so on... This is just speculation. Even if you believe that Novell is more likely to 'turn evil' than any other given company such as Red Hat or IBM, we normally judge free software by whether it is free in the here and now.
Mono is 100% free software. You have freedom to use, share and change it, just the same as gcc or Samba or X11. Microsoft and other companies enjoy making vague patent threats against all kinds of free software, including the Linux kernel. They don't need to be specific because the loose cloud of FUD is the effect they want. There is no need to help in spreading it.
Posted Oct 3, 2007 9:49 UTC (Wed)
by jfj (guest, #37917)
[Link]
Back in 1995 Microsoft stopped shipping a compiler/programming language with its operating system. The logic was that only professional programmers would be interested in such tools. They would pay a "tax" to microsoft to buy a compiler and libraries (about $300 then for the minimal version). The rest of the system would be closed -- professional programmers would work on the windows API.
This made a lot of hobbyists and advanced users switch to linux.
After a lot of hard work we managed to make a system that it completely open. Without specifications, under severe FUD and by lockouts from hardware vendors who where blackmailed to avoid linux. The free movement was ignored, laughed at and fought.
Now, 10 years latter, the movement has succeeded despite Microsoft's efforts. And now Microsoft wants in.
That may explain the "bias".
Some people talk about "revenue" and suggest that "revenue for Microsoft is ... revenue for Open Source"!
Others suggest superior technology, which is funny because linux has dynamic languages since the early 90s which are still better than C#, and Novell didn't invest any money in them.
As for "code that runs everywhere", this is the age of virtualization.
Posted Oct 3, 2007 17:24 UTC (Wed)
by oak (guest, #2786)
[Link]
Posted Oct 2, 2007 19:27 UTC (Tue)
by ballombe (subscriber, #9523)
[Link]
Somehow that seems strange. I can only assume the author had special requirement, because opensource sourceforge-like softwares are many. You can even apt-get install gforge.
Posted Oct 2, 2007 19:45 UTC (Tue)
by sylware (guest, #35259)
[Link] (16 responses)
Posted Oct 2, 2007 20:43 UTC (Tue)
by AJWM (guest, #15888)
[Link] (1 responses)
Posted Oct 3, 2007 13:11 UTC (Wed)
by sylware (guest, #35259)
[Link]
Posted Oct 3, 2007 1:09 UTC (Wed)
by larryr (guest, #4030)
[Link] (6 responses)
I think it would make sense to treat Mono as equivalent to a Java, Python, Ruby, or Perl interpreter/compiler/vm/runtime.
Larry
Posted Oct 3, 2007 3:21 UTC (Wed)
by drag (guest, #31333)
[Link] (5 responses)
Personally I don't care so much. It's just a few megs of disk space as far as I am concerned and I have lots of stuff installed that I only use very rarely that take a lot more space. Plus it's a fun thing to play around with and some C# apps are pretty good.
Posted Oct 3, 2007 7:36 UTC (Wed)
by zdzichu (subscriber, #17118)
[Link] (4 responses)
Posted Oct 3, 2007 9:26 UTC (Wed)
by sylware (guest, #35259)
[Link] (3 responses)
Posted Oct 3, 2007 13:43 UTC (Wed)
by drag (guest, #31333)
[Link] (2 responses)
I don't know why people hate C# so much. It's just a high-level language and is a honest-to-god real standard.
Sure Microsoft can break it at any time, but It's not like the lack of compatability of Microsoft C/C++ with Linux C/C++ has slowed those languages down in Linux.
Posted Oct 3, 2007 15:52 UTC (Wed)
by tony (guest, #3654)
[Link] (1 responses)
Historically, Microsoft has attempted to control everything they can. That is why they are not content to participate in Java. That is why they aren't satisfied to present Flash-based web pages. That is why they are working hard to eliminate Linux. Unless they control the environment, their software must be judged on its merits, in a fair market.
.Net is about gaining control of cross-platform web-based applications, and displacing Java as the corporate server-side application platform. It's a direct attack on "Web 2.0," which is Microsoft's biggest threat right now, even though it's just a buzzword. If you don't need MS-Windows to access the best applications around, you might use Linux or a Mac instead.
Silverlight is their trial. If they can get websites to replace Flash with Silverlight, they win. Websites will only do that if Silverlight is cross-platform.
And that's where Novell, Mono, and Moonlight come in.
Microsoft learned from their Active-X disaster. They learned that too many websites aim for cross-platform compatibility to pick up a strictly-proprietary service like Active-X. .Net and Silverlight aim to repair that problem.
Microsoft will be able to sell Silverlight development environments. Once Silverlight becomes the de facto standard for web-based rich clients (more buzzwords!), they can make Silverlight just slightly incompatible with Moonlight. Make it look not-quite-right on anything but Silverlight.
As they learned with MS-Office file compatibility, "close enough" isn't good enough when visual layout is vital. (That also ties in with OOXML, but that's another rant entirely.) If things don't look or behave quite right on Linux or OS-X, people will go with MS-Windows. It's the operating systems that will take the reputation hit, not Moonlight.
As long as Microsoft controls the environment, they *will* use it against other operating systems. They are *not* willing to play in a fair market, a market they don't control. This is true historically, and this is reflected in their current methods (SEE the recent OOXML fast-track standards vote for an example). To believe differently is to ignore over 25 years of Microsoft behavior (yeah, I'm looking at you, Novell).
Anyway, that's my rant. Thanks for listening.
Posted Oct 12, 2007 12:15 UTC (Fri)
by massimiliano (subscriber, #3048)
[Link]
Microsoft will be able to sell Silverlight development environments. Once Silverlight becomes the de facto standard for web-based rich clients (more buzzwords!), they can make Silverlight just slightly incompatible with Moonlight. Make it look not-quite-right on anything but Silverlight.
Maybe, or maybe not.
Novell and Microsoft have a deal on this, and part of the deal is that
Moonlight and Silverlight will be truly compatible. Novell must produce
a compatible implementation, and Microsoft must provide the tools to do
so, including a complete specification and exhaustive regression
tests (which include comparison of output images).
And I think none of the sides has any interest in not respecting the
deal they signed...
And yes, we are seeing the tests, and we'll run them: they are not
vaporware.
Posted Oct 3, 2007 12:03 UTC (Wed)
by chrislee (subscriber, #4460)
[Link] (6 responses)
I've done many projects over the past couple of decades in C, C++, Java, Python, Perl, Scheme, and dabbled in Ada, Haskell, Common Lisp, and other languages. I recently wrote a program in Mono/C#, and it was a terrific experience. Compared to C, Mono is bloated. Compared to Python, etc..., it doesn't seem bloated at all. I felt the libraries are better design than Java's, and I really love the new aspects of the language that are informed by functional programming.
I find really discouraging the nasty comments left about Mono at lwn and elsewhere, with lots of innuendo about patent problems, etc... (which I'm still waiting to see anyone address with specificity).
Please, if you have specific, substantiated concerns about Mono (legal, resource usage, etc...), I'd love to see them discussed and learn about them. Otherwise, please try to be more informed before posting, or think some more before engaging in FUD about a free software project.
Posted Oct 3, 2007 13:26 UTC (Wed)
by sylware (guest, #35259)
[Link] (1 responses)
Python/Ruby/Lua/Javascript... are dynamic, C#/Java are statically compiled, one of the reasons which make them already obsolete.
Posted Oct 4, 2007 16:56 UTC (Thu)
by butlerm (subscriber, #13312)
[Link]
Posted Oct 3, 2007 16:29 UTC (Wed)
by tony (guest, #3654)
[Link] (3 responses)
But, the few quibbles about the language aside, C# isn't a bad language. It has the conciseness of Java, the power of VB, and the execution speed of Python. As you point out, the libraries are cleaner than the Java equivelents.
Rather, the problem is in control.
As long as Microsoft is in control, the platform *will* be used against competitors. Microsoft has never *once* implemented a protocol without proprietary extensions aimed at lock-in. Not once. If they do that with truly open standards, what do you expect them to do with a de facto standard they control?
Make no mistake. This is a simply another attempt to gain control of the web, such as they tried with ActiveX. This attempt is better planned, building on the mistakes of ActiveX and their attempt to usurp control of Java.
Keep in mind the tale of the scorpion and the frog. (http://allaboutfrogs.org/stories/scorpion.html)
It's just Microsoft's nature.
Posted Oct 3, 2007 17:45 UTC (Wed)
by chrislee (subscriber, #4460)
[Link] (2 responses)
Could you link to these? I'm curious.
> But, the few quibbles about the language aside, C# isn't a bad language. It has the conciseness of Java, the power of VB, and the execution speed of Python.
Not to get into a protracted argument, but I don't think this is true. I find Java's verbosity has a lot to do with its 'Object fundamentalism', and explicit typing. C#'s lambda expressions short circuit a lot of this in my experience, and implicit typing solves much more, to make it concise enough for me. Haskell, for instance, is much better, but C# isn't bad for a typed language. Performance isn't like Python at all (http://shootout.alioth.debian.org/gp4/benchmark.php?test=..., do you have a better reference?). Also, I find startup time of the Mono VM is not a problem, as I worried about after using other VMs in the past. The power I missed when using Java was mostly functional programming constructs, but things are better in C#.
> Rather, the problem is in control.
In design of the language, VM, and libraries, I think MS has done well. If they wander off the reservation for some reason, I don't feel obligated to follow. I'm not running any of their code.
Posted Oct 3, 2007 18:57 UTC (Wed)
by tony (guest, #3654)
[Link] (1 responses)
That's poor design: a race condition *built into the language.*
The generics is more of a personal thing. I find when I profile C# code, bits written using generics are slower than bits written without. I've seen other people mention this (specifically in reference to JIT efficiency), but I can't find them after spending 30 seconds on Google.
As for my other points: that was a joke. I don't think it's that far off base, but it's still just a joke.
As far as the control:
You can choose Mono all you like. The masses will not, as long as it is not 100% compatible with .Net. And so web designers and application writers alike will target .Net, not Mono. And no matter how good Mono may be, any issues when using the web will result in users ditching non-MS operating systems in favor of MS-Windows.
Your personal choice has nothing to do with it. It is all about Microsoft trying once again to gain control of the web, to make sure that Linux or OSX don't work the same as MS-Windows when interacting with the web. It's about gutting "Web 2.0," and other emerging buzzwords.
What's the point of having a decent .Net implementation if nobody uses it?
As long as Microsoft has the upper hand, they will use it to our disadvantage. The worst part of Mono isn't that it's a direct implementation of .Net; it's that *we're giving Microsoft the upper hand,* knowing full well that Microsoft has no desire to co-exist.
.Net/Mono is a big wooden horse, and we're not even rapping the sides to see if it's hollow.
Posted Oct 12, 2007 9:29 UTC (Fri)
by llupus (guest, #20164)
[Link]
There is no such race condition built into the language, read the standard, it is available for free from ECMA.
Posted Oct 2, 2007 20:45 UTC (Tue)
by alextingle (guest, #20593)
[Link] (9 responses)
Posted Oct 2, 2007 21:28 UTC (Tue)
by Los__D (guest, #15263)
[Link] (6 responses)
Posted Oct 3, 2007 7:37 UTC (Wed)
by fsphil (guest, #44932)
[Link]
Posted Oct 3, 2007 16:44 UTC (Wed)
by tony (guest, #3654)
[Link] (4 responses)
The constant autocomplete is annoying, as it stops me to make me think about autocompleting, rather than programming. It's slow. It's autoindent sucks, and is inconsistent. There are few keyboard shortcuts for often-used features, such as folding.
Basically, Visual Studio makes the easy things easy, and the moderately-easy things easy, but it makes the medium things difficult, and difficult things impossible. (This might be my ignorance, but I haven't been able to figure out how to do regex search-and-replace, or how to cut a rectangle of text rather than a block of text.)
Visual Studio seems to focus on writing lines of code, rather than *programming.* That's great for beginners, but it kinda sucks for more advanced programmers.
Of course, that's just my opinion. I could be wrong.
Posted Oct 4, 2007 8:29 UTC (Thu)
by Los__D (guest, #15263)
[Link] (3 responses)
The constant autocomplete is annoying, as it stops me to make me think about autocompleting, rather than programming. It's slow It's autoindent sucks, and is inconsistent. There are few keyboard shortcuts for often-used features, such as folding. Basically, Visual Studio makes the easy things easy, and the moderately-easy things easy, but it makes the medium things difficult, and difficult things impossible. (This might be my ignorance, but I haven't been able to figure out how to do regex search-and-replace, You've used it, right... All of 5 minutes or so.
Posted Oct 4, 2007 20:55 UTC (Thu)
by nix (subscriber, #2304)
[Link] (2 responses)
Compared to what?
For that matter, popping up a window? Talk about distracting, no matter
what's in it. Even undecorated and not covering any text it interrupts the
blank sheet of virtual paper I'm typing in. Imagine reading a book if
whenever you read a word a dictionary definition popped up above it. Even
if it went away when you moved your eyes (which intellisense windows do
not!) it would be fantastically annoying.
Configure it properly, then.
Often used by you, maybe. Anyway, it's Ctrl-M, M for current
function/class/region. Ctrl-M, L for all.
But of course because I gave up and switched back to my preferred editor
(which has admittedly got the benefit of familiarity) I imagine you'll
ignore everything I have to say as well.
Posted Oct 4, 2007 21:48 UTC (Thu)
by Los__D (guest, #15263)
[Link] (1 responses)
Compared to, well, typing. The editor stutters every time it pops up an autocomplete window, and that window is always right over where I was planning to type next, or over some code I'm consulting. No can do. It's much too inflexible. It's grossly underequipped with shortcuts compared to Eclipse, vi, *and* Emacs, and it's not configurable enough. But of course because I gave up and switched back to my preferred editor (which has admittedly got the benefit of familiarity) I imagine you'll ignore everything I have to say as well.
Posted Oct 4, 2007 23:22 UTC (Thu)
by nix (subscriber, #2304)
[Link]
... the Emacsen look trim next to this monster.
Posted Oct 2, 2007 21:39 UTC (Tue)
by zlynx (guest, #2285)
[Link] (1 responses)
Eclipse tries to imitate it but only succeeds for Java, and it uses more memory and CPU time to do it.
On Windows I wouldn't use anything but Visual Studio for C work.
This is my opinion, but it's an informed opinion.
Posted Oct 3, 2007 7:57 UTC (Wed)
by epeeist (guest, #1743)
[Link]
Eclipse tries to imitate it but only succeeds for Java, and it uses more memory and CPU time to do it."
You might want to have a look at the new Europa (3.3) version of Eclipse. It seems to be a lot lighter and faster.
Posted Oct 3, 2007 7:56 UTC (Wed)
by wildgift (guest, #31283)
[Link] (2 responses)
MS went and added a bunch of network and browser-like things to .NET, and good integration with Windows.
The thing is, while MS was off copying Java, the whole world went in other directions. First, Java/VB/C# style languages lost their cool (if they ever really had it), and Javascript and languages with lisp-like features got a lot cooler. Second, the web browser became a significant application platform, and is continuing to develop in this direction. This is still growing, and represents the future of apps. Third, Firefox happened, and basically freed intranet web apps from IE6... a very good thing. Fourth, MySQL happened, destabilizing the database market.
Browser-based apps are where it's at. Look at Tomboy Notes -- it's a personal Wiki system written in Mono. While there were certainly other hypertext tools before Wikis.... TB acts like a Wiki, adopting the interface restrictions of web browsers. The software is, basically, "dumbed down." Plain, "dumb" software that works like web pages is the future of the desktop experience, because we're running more and more software, via apps, via the web, and on gadgets. There's no way for anyone to really learn all the features of all these apps.
Instead, what we'll be expecting is good integration of data, so that links work, old input is remembered, data moves between apps, and searches cut across sets of data. We want things to link automatically, and for data to be put into its right place.
Again, while MS was putting rich GUI stuff into .NET, which is fine, the world has been shifting to simple interfaces, and many more of them. While .NET was doing its ADO thing... the world really pushed straight into SQL.
So, don't sweat over Mono.
Posted Oct 3, 2007 13:14 UTC (Wed)
by sylware (guest, #35259)
[Link]
Posted Oct 6, 2007 5:51 UTC (Sat)
by muwlgr (guest, #35359)
[Link]
Posted Oct 3, 2007 14:44 UTC (Wed)
by tjw.org (guest, #20716)
[Link] (5 responses)
The other "Unexpected" thing I noticed was that GNU Portable.NET has been
Posted Oct 3, 2007 16:48 UTC (Wed)
by k8to (guest, #15413)
[Link] (3 responses)
I certainly learned C# on p.net, it was easier to get running than Mono, certainly for the gui stuff. The dev team was much more responsive, and it seemed like it had made many more sane fundamental choices. I did however encounter various pieces of simple functionality that did not work correctly, implementations of functions that no one could have ever tested. p.net seems more like "an assortment of people programming for fun" sort of effort, while Mono has very focused goals.
My experience with Mono was there was very rapid advancement in implementing the entire library, and many performance issues were being rapidly engaged (not that it was slow to begin with). But when reporting issues like "repeatedly making the same trivial soap call causes Mono's virtual memory allocation grow without bound" were ignored. I do not mean they rotted in a bug database, I mean the developers simply refused to believe this represented a problem. The point is that the project is very internally directed. They know what they need to do, they don't need (or want) your input. In this sense the project is closer to a traditional development model than a community project, although certainly in terms of the nuts and bolts it operates in a completely open way with many contributors.
Posted Oct 3, 2007 17:19 UTC (Wed)
by oak (guest, #2786)
[Link] (2 responses)
Do you have bug link, test-code and maybe also some memory usage graphs?
Posted Oct 5, 2007 5:45 UTC (Fri)
by k8to (guest, #15413)
[Link] (1 responses)
The issue was mitigated but only after the issue went up the food chain at the company I was consulting for and our VP called the Novell VP and etc. This only happened because the bug was blocking the development of a large product at the company I was consulting for. After around 3-4 months of this problem being ignored, after this rigamarole, it did get addressed. In the coporate world of software programming that is *very* responsive. In the free software world, not so much.
Posted Oct 5, 2007 6:19 UTC (Fri)
by k8to (guest, #15413)
[Link]
Posted Oct 12, 2007 9:31 UTC (Fri)
by llupus (guest, #20164)
[Link]
Quite a nice advocacy job. But to balance that, I repost here part of one of the comments on the article, from one 'jt':The Mono Project: You Might Expect the Unexpected (Linux Journal)
My experience with Mono as ASP.Net environment is that it's somewhat immature but still quite usable. It is definitely improving at a rapid, noticeable pace. So far all updates to mono have felt absolutely essential, and I've followed it as a developer from 1.2.2 to 1.2.5. Each new version eliminates bugs and brings new features to the table which are immediately useful.The Mono Project: You Might Expect the Unexpected (Linux Journal)
This seems the same situation that applied to Java for many years. The free implementations were struggling to catch up with a semi-proprietary standard, Sun could change it at any time, and so on. That didn't prevent free Java implementations from being usable and being free software.The Mono Project: You Might Expect the Unexpected (Linux Journal)
Well, the thing is history.The Mono Project: You Might Expect the Unexpected (Linux Journal)
And if MS makes it incompatible with the standard, Mono project could
market itself on as the "Cross-platform, standards compliant C#
implementation", maybe even on Windows...
The Mono Project: You Might Expect the Unexpected (Linux Journal)
> You can probably guess what happened next. I wound up with my foot in my mouth working on setting up a Sourceforge style hosting environment for a client. The only free Open Source project I could find had a BSD license. The project is SharpForge And you got it, the author wrote the project in C#. The Mono Project: You Might Expect the Unexpected (Linux Journal)
Mono is a bare controversial bloat.The Mono Project: You Might Expect the Unexpected (Linux Journal)
Must be kicked out of official gnome.
Maybe it's time to have several official gnome desktop flavors (at least one would be free from mono and evolution).
Well, there is always KDE.The Mono Project: You Might Expect the Unexpected (Linux Journal)
Indeed.The Mono Project: You Might Expect the Unexpected (Linux Journal)
But I'm not ok with C++. Maybe KDE has clean C bindings, I have never checked.
Nowadays, I tend to push people towards xfce even if it's not a full-blown desktop (yet!).
Re: The Mono Project: You Might Expect the Unexpected (Linux Journal)
Well people don't like that Mono is a official part of Gnome. So if you install 'Gnome' you're required to install Mono for all of it's capabilities. Re: The Mono Project: You Might Expect the Unexpected (Linux Journal)
Mono isn't part of GNOME any more than Python, Perl and libc is.Re: The Mono Project: You Might Expect the Unexpected (Linux Journal)
Okay then. Let's kick out Tomboy from the only one "official gnome desktop". The dependency of the "official gnome desktop" on Mono would be severed.Re: The Mono Project: You Might Expect the Unexpected (Linux Journal)
Ya, something like that. Re: The Mono Project: You Might Expect the Unexpected (Linux Journal)
.Net is a bit deal for Microsoft. They are using it to attack several of their "enemies" at once: Sun/Java, Adobe/Flash, and Linux.Silverlight
Silverlight
The Mono Project: You Might Expect the Unexpected (Linux Journal)
"Compared to Python, etc..., it doesn't seem bloated at all"The Mono Project: You Might Expect the Unexpected (Linux Journal)
As long as you don't care about a 10x performance penalty...Performance
There are technical problems with C#, .Net, and Mono. First, there is the problem with a race condition when calling a delegate that could've easily been avoided. Then there's the performance problems with generics.Concerns
> There are technical problems with C#, .Net, and Mono. First, there is the problem with a race condition when calling a delegate that could've easily been avoided. Then there's the performance problems with generics.Concerns
The delegates problem is simple: between testing the existence of a delegate, and invoking a delegate (two lines of code), a second thread can remove the last item of that delegate, resulting in a NULL exception. So, to get around that, you have to create a mutex specifically for delegate access and create methods for adding or removing items from a delegate. Or, you can catch the exception and deal with it, taking the try/catch performance hit, and generally disposing of the exception anyway.More control
The delegates problem is simple: between testing the existence of a delegate, and invoking a delegate (two lines of code), a second thread can remove the last item of that delegate, resulting in a NULL exception.
[...]
That's poor design: a race condition *built into the language.*
More control
The Mono Project: You Might Expect the Unexpected (Linux Journal)
...MonoDev, an IDE that reminds me of Visual Studio.
Ugh! And this is an advocacy piece??
You didn't really try Visual Studio, now did you? (Besides opening it, looking for the first best thing to bitch about)The Mono Project: You Might Expect the Unexpected (Linux Journal)
I have to agree with alextingle. At work we have started using Visual Studio 2005, and all of us in the IT department agree that it's really quite nasty. It's incredibly slow, prone to pausing for no reason at all and has on a few occasions forgotten all of the settings for projects. Don't get me wrong, it's got some nice features, but overall the experience is not a good one.The Mono Project: You Might Expect the Unexpected (Linux Journal)
I've used Visual Studio. I can't stand it.I've used it
For... a second?
For a lot of people, autocomplete is a major speedup.
Almost any modern environment supports it, and I've never heard it as an argument AGAINST a software package.
But, if you don't like it, turn it off.
Compared to what?
Configure it properly, then.
Often used by you, maybe. Anyway, it's Ctrl-M, M for current function/class/region. Ctrl-M, L for all.
How so? What is it that it blocks you from doing? I call 'bull'.
Ctrl-H, "Find options" "Use: Regular Expressions"
or how to cut a rectangle of text rather than a block of text.)
Hold down Alt while you do it.
I tried VC++, couldn't cope, and switched back to XEmacs. You've put your
fingers on the very things that annoyed me most about it.
For... a second?
It's slow
Compared to, well, typing. The editor stutters every time it pops
up an autocomplete window, and that window is always right over where I
was planning to type next, or over some code I'm consulting. (I suspect
that mapping windows always stutters, but that normally you don't
notice because you're not in the middle of a task like typing where fifty
millisecond lags are noticeable.
It's autoindent sucks, and is inconsistent.
No can do. It's much too inflexible. I can teach cc-mode to indent
my code in virtually any way I can imagine, and even to indent languages
which embed other things into C code or which contain embedded C. VC++ is
vastly less flexible.
There are few keyboard shortcuts for often-used features, such as
folding.
It's grossly underequipped with shortcuts compared to Eclipse, vi, *and*
Emacs, and it's not configurable enough. (It's even less configurable than
the horrible ancient stock vi which comes with SunOS 4.)
For... a second?
No stutter here. And again, you can TURN IT OFF, if it bothers you. If you like the IntelliSense idea (Why give it a new name? Oh well, it IS MS after all), it is more than a bit of help, and frankly, still the best of the editors that supports it, luckily, Eclipse is getting closer and closer. If you get easily distracted, I guess a list showing is a problem.
That's another matter, hardly anything is comparable to Emacs' flexibility in any circumstance.
I'm not the big "configure the hell out of anything I touch" type, I'm usually flexible myself. I don't really miss any shortcuts, but then we are different.
No, you actually had reasons, the OP, and the topic starter just threw bull.
This was `only' a 1.2GHz Athlon, so I suppose stuttering and being For... a second?
sluggish as hell is `expected'...
Visual Studio is the definitive C/C++ development environment (for Microsoft only, of course).
The Mono Project: You Might Expect the Unexpected (Linux Journal)
" Visual Studio is the definitive C/C++ development environment (for Microsoft only, of course).The Mono Project: You Might Expect the Unexpected (Linux Journal)
.NET is a copycat of Java and its extensive class libraries. MS created it because Java had become a real threat to its ability to keep pace with Java development. Windows programmers were stuck with two options: C/C++ and the MFC, which weren't as nice as the Java classes; Visual Basic, and its libraries. VB is actually an okay language for app development, if you ignore the fact that it's not much fun to program in it. To add insult to (uh) insult, people were choosing to program in Java, and deploy on Windows, and the VMs were getting better.Mono, .NET, not huge factors in the future of software...
"the world has been shifting to simple interfaces, and many more of them"Mono, .NET, not huge factors in the future of software...
... may gnome evolution people hear you!
Straight SQL, you tell ? Ruby/Rails/ActiveRecord is designed to be as far from straight SQL as it is possible. And once I was shown Smalltalk/Gemstone. That's how you should store your data in modern times, thought I. Unfortunately I could not find equivalent opensource/free software providing such object-persistence level. "Straight SQL" should be left in 70s long ago, together with its brothers COBOL and PL/1 (both of IBM's heir as well).Mono, .NET, not huge factors in the future of software...
For me, the "Unexpected" was that mono requires gnome libs to be fully The Mono Project: You Might Expect the Unexpected (Linux Journal)
functional. I have been interested in making System.Windows.Forms
applications that could be deployable on Linux, Mac, and Windows (using
MS .NET runtime). When trying to resolve the dependencies on my Slackware
system, I get the impression that building mono is a lot like building
Gnome (not for the faint of heart).
keeping pace and has a very nice native System.Windows.Forms implementation
as well. It is quite easy to build and doesn't have a bunch of external
dependencies.
Portable.NET is a decent project if you like the whole C# world. Their major problems as compared to Mono are completeness and execution speed. That isn't to say the p.net is bad, or not progressing nicely but when you get into a moderate sized programming project you may find it doesn't have enough there. The Mono Project: You Might Expect the Unexpected (Linux Journal)
> But when reporting issues like "repeatedly making the same trivial soap The Mono Project: You Might Expect the Unexpected (Linux Journal)
call causes Mono's virtual memory allocation grow without bound" were
ignored.
It was filed. It had test code. I did not produce graphs. I only tested it until the 4gigs of real memory and 4 gigs of swap were entirely full, and the oom killer finally kicked in. I did produce logs.The Mono Project: You Might Expect the Unexpected (Linux Journal)
And let me add that I find the tendency to *disbelieve* honest problem reports offensive.The Mono Project: You Might Expect the Unexpected (Linux Journal)
Mono requires only glib as a build dependency (and not even that if you use the embedded glib).The Mono Project: You Might Expect the Unexpected (Linux Journal)