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