MLUG: Re: [MLUG] mono
Re: [MLUG] mono
Email address obfuscation in effect -- please click here to turn it off.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

All I can say about .NET developing is that Microsoft has created (with version 2.0 anyway) a development platform with .NET that will blow anything else away.

Everybody claims this for whatever tool they are using. Usually it's partly true. The tool can make development faster under certain conditions. Usually tools like IDE's make the easy, but slow and mundane, stuff easier and faster but they make the hard stuff harder because you're less in touch with how things are actually put together and it's harder to access the internals. Libraries, functions, objects, etc can make hard things easier and faster but again suffer the problem of abstracting stuff out to the point that it's harder to understand and fix bugs - especially when these are closed source. The problems don't mean you shouldn't take advantage of these tools but that you shouldn't try to use them for everything. UI code is perfect for IDE's because it's a pain in the ass to do by hand because it's so detailed and yet mundane. It also changes frequently. The key is to not do the actual logic of the program in the IDE if the program is going to do very much. If you do then you'll eventually regret it. Clear sepperation between logic code and UI code is important anyway so using different tools should only make keeping these codebases sepperate easier. Using libraries, functions, and objects is a major time saver and modern computing would be impossible without them but you're stepping in a pile of crap if you use them when you can't see and fix their internals. It's also important to make sure these have stable, well thought out, interfaces if you want your code not to suck.

What Microsoft has done is created the means for faster development of software applications. I know for my purposes working with web platforms the new system is such a time saver.

A fancy IDE and some standard libraries. Anything else? For web development my number one slowdown is working around IE bugs. How does .NET help me with that? I'd suspect it either generates some non-standard crap or it just doesn't enable the features I need at all.

Using .NET and the ADO.NET <http://ADO.NET> tools, I can create a working data form for the web in arguably less than 5 minutes time. It is as simple as dragging a dataform from the tool menu to the page and then telling the dataform where to look for the data. The application writes everything from the SQL query to the opening, closing, updating, form validation and handles the data transfer between the application and the database. As far as I know, there is nothing out there that is doing this.

I can create a working form in PHP, Perl, Python, Javascript, etc in about the same time. There shouldn't be much code involved if your program is written well. Standard libraries for creating, validating, and processing forms should make this much easier and faster. You just specify the variables and any details such as field labels and the details are taken care of for you. An example would be PHP's PEAR's QuickForms.

To prove my point, I was recently working with a programming that was working in PHP and I bet him I could get a standard employee update application completed in less than half the time he could using PHP and MySQL. Using the .NET application with Microsoft's Studio developer, I was not only able to beat him, I beat him soundly by having the database design and the application programmed and running in less than 1 hour. (He never finished).

PHP really isn't the best language to test against. It's standard library is fairly weak and poorly designed. PEAR is an improvement but still fairly unstable and you usually have to install the parts you want to use. Python, Ruby, Java, and Perl have much better standard libraries. PHP should have really good standard libraries for doing common web development tasks but it really doesn't yet. Zend has announced their intent to make a PHP based development framework so I guess they'll probably add these kinds of details into that. Years behind when they should have done so IMO. PHP especially needs a more abstract way of working with databases. Having to manually insert SQL into the code is a really lame method. It really doesn't impact development time much though because smart programmers create their own library to abstract queries and db access. It's only a nightmare if you're dumb enough to inline HTML, SQL, PHP, Javascript, and CSS all together.

Development time isn't a very clear judge of how effecient writing
software is either. Code maintainance usually takes much more time than
development over the life of a program so effecient maintainace is more
important I think. Quickie tools like IDE's usually are bad at this job.

So now, if I could take that kind of development power and build cross platform applications for Mac, Windows and Linux, my ability to provide useful applications and bringing them to market, or download if you prefer is increased.

In theory .NET should run just fine on any platform that has the .NET virtual machine and standard libraries. The problems being that Microsoft didn't create these for other platforms, these aren't really standardized because Microsoft purposely plays with the .NET standard so that it isn't fully documented and they don't fully do things in the documented ways, and because many .NET programmers do things in a way that still ties their programs to Windows.

Except for Microsoft cross-platform development is already pretty easy
because of POSIX standards, standard libraries that work practically
everywhere, and platform-neutral languages already exist. I can write a
program on Linux and be pretty sure it'll run on Windows, OS X, and
FreeBSD with few changes and if there are any needed changes they're
probably in Windows and are due to Microsoft's purposeful breaking of
standards (especially POSIX and standard functions). Write a Python or
Java program and it's portable to far more places than .NET is.

Look at it this way, it would be better for the whole of the open source community to have developers that can get applications of worth out there for all of us to use. If mono helps us do that, then it is going to be a good thing.

It would but there are already tools as good as or better than .NET available and the problem is most developers don't use them. Why? Because using C for every stupid little program still makes people feel like they are writing a real program where using more effecient tools makes them feel they aren't an uber-hacker. If you don't use C you're simply given less respect from the community and other developers so most developers use C.

The main benefit from Mono will be if it allows different programming
languages (Java, Perl, Ruby, Python, PHP, etc) to use libraries written
in each other. I don't think a virtual machine design is the way to go
for this but if it allows sharing it'll be doing something useful at
least. Many attempts have been made to get these languages to enable
this feature before now but thus far being able to compile to the Java
virtual machine is about as close to enabling that feature as we've
gotten and because Sun chose not to encourage that it hasn't prospered
as much as it should have.

--
Michael <EMAIL:PROTECTED>
http://kavlon.org



_______________________________________________
members mailing list
EMAIL:PROTECTED
http://mlug.missouri.edu/mailman/listinfo/members