It's a nice dynamically typed OO language with crystal clear syntax, ease of programming, quite a few very handy operators and builtin types, and it runs anywhere. And i mean it: it runs on Linux, Windows, MacInstosh, *BSD and even on the.NET CLR ( IronPython implementation ) and the JVM ( Jython implementation ).
Yes, you'll be able to transparently handle java or.net objects from it...
Programming in C# or java feels like programming in assembly, comparatively...
"How does this shit get moderated up? The poster is clueless."
you just took the word from my mouth...
"why did MS release Rotor for FreeBSD?"
Why should i care for a 2002 demo of.Net for FreeBSD? Where it is today? Does M$ actively supports it as of today? i guess no, since a quick google only shows 2002 articles...
"Why did it bother to get C# implemented as an ECMA standard?"
For the same reason they released rotor: good marketing. To show they are playing nice, that they are compromised with standards. Standards my ass! Once they are the dominant force, they make the standards... and drop features originally intended to play nice, like rotor...
"Why does it help, instead of try and crush Mono?"
Help?! Last time i heard, they didn't let the mono guys get into the latest of their.Net Conventions...
"Why does the API include Oracle functionality?"
Because, M$ like it or not, many of their users prefer Oracle over M$SQLServer...
"In contrast, Java is currently a closed platform with Sun's fingers firmly around its neck."
There are tons of great open-source tools built around java technologies that are absolutely vital to the daily java developer -- like Eclipse, Hibernate or Ant. There are quite a few different implementations of the JVM from the proprietary and open-source worlds.
I believe java owes to a lot more people than just the Sun guys...
"Emacs and VIM are simply outdated in their ability to match the speed/enhancements of a modern IDE."
This is so fucking plain wrong i don't know how to start.
First off: IDEs are a concept from commercial environments like Windows and Macs. For a very simple reason: such environments come with nothing at all for you to do software development. No compilers, no interpreters, no decent command-line interpreter, no debuggers, no web servers, no DBMSs, no decent text editor...
Notepad?! Come on! I'm a software developer, not some news reporter from the 40s or some housewive with free time in my hands to cook...
The reason Unix don't need an IDE is simple, too: it is an Integrated Development Environment, by itself! From the shell, you edit source code, you built Makefiles, you write simple support scripts, you compile, you debug, you list the files in your project etc etc etc... it comes fully loaded with software development goodies.
Today you have some pretty hot IDEs, like Eclipse. They are huge monsters that draw all your computing resources just so that you can feel they are trully powerful. I bet someday they'll be so powerful as to not even need programmers: just describe what you need, and they'll automagically make it done.
Don't get me wrong: i feel Eclipse's refactoring tools to be pretty nice. Not something impossible to be done in emacs-lisp or in vim scripts, but nice anyway.
The problem i see, though, is this: all IDEs i've met ( Delphi, VS and Eclipse ) suck so badly at the text editing itself, that sometimes i feel i'd be better off by just editing in emacs or vim anyway. Vim's extreme ease to go forward and backwards in your jump list history alone would suffice for the change. Simple word completion is also way, way faster than the heavy semantic completion ( Intellisense or whatever other bs M$ marketeers can come about ). It's also, in some 80% of the cases, the effective choice. Don't even ask me about sentence/paragraph ( blocks ) selection and moving through the text: these simply don't exist in IDEs...
Of course, since the text editing component sucks so much, IDEs try to compensate by having such features as class browsers ( a quick listing of all the methods and other declarations in a class ) and the like. So, you can move your hand away from the keyboard, reach for the mouse, scroll down, select an appropriate entry and go there. Somehow, i don't believe it would be so much trouble in vim or emacs...
It was pretty complete for it's original purpose: being the high level API of UNIX...
Back in the day DBMSs were still in their infancy and people used their own file-based DBs to store data. There was no web, let alone web servers, servlets and other stupidity. No GUIs, except some crazy concepts which didn't work ok on the slow hardware of the days.
Memory allocation, file, stream and string handling were all you needed to build functional systems.
It has remained that way for historical reasons, but i still believe it's ok. If you ever have a need for DB access, just pick an API among the many available. If want xml processing, pick one.
The one solution fits all doesn't sound ok to me...
If you call those comprehensive libraries, then I have a bridge to sell you. The 1.1 library (which was where Java first started taking off) had such features as... guaranteed to be on every platform Java was. That's one hell of a feature!"
That's because Java is not a language with a standard library: it's a development platform, almost an OS, with an associate standard language with which you reference the imense API. It's almost the same as a sh script accessing the POSIX utilities: as long you're in a POSIX environment, you'll be able to use them, using the same standard sh scripting language.
Only thing annoying is that java is a lousy scripting language to handle what is otherwise a nice programming environment. Thankfully, Jython, ruby and others are coming along just nicely in said environment...
"I look back at days before Java, and they seem like the dark ages of computers."
Come on! I believe the 70s to be like the Renascentist ages, with a few Leonardo DaVincis and Michaelangelos. OOP, VMs, IDEs, GUIs, functional programming... all born those days...
Lisp and Smalltalk had programming environments those days which could not be matched on features and sheer complete control of the environment up until recently with the likes of Eclipse...
The dark ages and the java era have one thing in common: people lived in obscurity, paying their deeds to God in the form of self-punishment...
"The lack of information hiding makes it very hard to ensure that fellow programmers use your classes in the way intended"
It can certainly distinguish between private and public instance variables. Just prefix with __ -- say, foo.__bar -- the attributes you want to make private and the runtime will mangle them and make them not directly accessable. Tsk, tsk, 30.000 lines and seemingly not even a peek at TFM...
Yes, people will not be able to say foo.bar ( obviously ), but neither foo.__bar. However, they can take a look at dir( foo ) and see the result of the mangling: you can reference it via foo._Foo__bar ( supposing a Foo class ).
So, if the guy access a private variable, it's very obviously not an accident: it's deliberate. Then, if he's deliberately trying to access a private variable, let him get hurt. He should learn it the hard way...
Oh, you may think the language should prevent that? People in this side of the fence think of that java "feature" to be very limiting. There are some valid reasons why having direct access to private variables should prove worthy, so it's there to be used with care...
"small typos in function/variable names aren't caught nearly as quickly"
I don't understand what you mean by that. You mean at compile time or something? Test. and then test again. and then some more, just to be sure. To quote Donald Knuth: "Beware of bugs in the above code; I have only proved it correct, not tried it".
By correct, he meant: it compiles ok...
"performance is far behind java"
Are you sure of that? Most python libs are just thin high level wrappers to C libs which are running natively, while Java libs will be running in the same JVM and using just as much memory. Besides, a very high level language as python has many useful operators and data structures builtin ( implemented in C ): i'm thinking specifically in lists and hashes, while Java has to handle the gigantic Collection API just to have something halfway-decent...
It's easy to measure benchmarks by just going with a simple recursive algorithm and declaring java the champ. But this does not count on real world matters. And i believe real world matters are far more taxing on java and its tons of jitted libs than on python and its many thin wrappers to native libs.
"a nice little scripting language."
ah, yes! So now we get to your point. It's just a "little scripting toy tool to do quick hacks", not capable of ever achieving the same level of performance of a "harder", more "sturdy" and "enterprise"-ready compiled language like java.
Now, i doubt why a guy who has python in so low account would have a 30.000 line project written in it when he had not even taken a look at the available documentation to know that you can indeed simulate perfectably acceptable access modifiers?
I know the answer: you're plain fucking lying just to wash your java ego...
"go out there and start your own company and in ten years..."
In ten years, if you're one hell of a coder as well as one hell of a businessman ( ouch! ), Microsoft will be buying your shiny company. Sadly, that's the way it works...
so, let the guy just work for them anyway and don't start some astounding business which will just be integrated into the behemoth some years in the future...
old stuff is rock solid stable. It's actually a Debian policy...
But what is really amazing is that even by supporting cool new-fangled tech like the newest CSS standards, XUL GUIs, XForms and SVG, FF _just_ crashes twice as much as a piece of software from the early 2000s which sports none of those features at all...
Re:Something Kool for my Komputer!
on
KDE 3.5 Released
·
· Score: 1
i for one wish it came with kmacs or kim rather than kate...;)
"Pascal and Ruby both suffer from the same problem: too much typing."
Well, that never stopped american Java adoption. Yes, it uses { and }, but too much typing is all around its design. Have you ever tried passing a callback in Swing? You'll understand what i mean...
GNOME is now no more a mexican product as linux is a finland one. BTW, the main developers of GNOME nowadays aren't even Icaza and his mexican fellows, but the likes of american companies like RedHat, Sun and Novell. I think the LGPLd american-made GTK+ also contributed to its large adoption...
"Pascal has a hand-holding feel, like you're in a little box constantly fighting the language."
Well, C has no "hand-holding feel" whatsoever and still, there you are fighting its basic design all the way, specially string handling...
"No pointers or similar mechanism."
I see you never programmed Pascal and is talking things out of your ass.
type TSomeRec = record
foo: string;
bar: string;
end;
var somerec: ^TSomeRec; (* pointer to TSomeRec *)... later... somerec^.foo = "foobar";
etc
"Abstracted strings."
And that is a bad idea because...? It's lack in C is one of the most annoying things, something that C++ rightly got right...
"That's why programmers use C(++): more control."
Pascal and its Borland superlative ObjectPascal has got all that C/C++ got, except for macros ( there are compiler directives though ), coupled with a better designed and more readable syntax overall...
"But your basic idea that Americans have a 'not invented here' bias against some software is just wrong."
Linux was just started by a finland guy. It was hacked by hundreds of people from all over the world. Many americans thought it to be a legitimate kernel for the very american GNU system. It was also working great while the BSDs were still starting.
"GNOME? Developed by Mexicans."
Using GTK+, by american students. Icaza is living in america for a long time and was even offered a job at M$. Besides, his best friend Nat is a legitimate american. Still another case a foreign technology absorbed because it's now perceived as a legitimate american IP...
"(Don't even get me started on the Japanese hardware and software that floods the US market.)"
Japan is nowadays just a shadow of the once proud warriors they were. A mere american colony in the overseas...
I'm guessing it's the very american "Not invented here" syndrome.
Good technologies don't have a chance in the USA if it isn't to be actively developed there. KDE is from the germans. OCaml from the french. Pascal never got a chance against USA own C, even having the same capabilities but much nicer language features, like being a real block structured language with real lexical scoping.
Python was to die a slow death against Perl hadn't Guido Van Rossum moved over to the country. Perhaps the japanese guy behing Ruby should move over to so it can be considered the intelectual property of an american? perhaps then ruby would get a boost...
Because they most likely won't be able to read the new docs and xls your friends, customers or coworkers will be sending you from their next Office release?
isn't that the exact same way we got here today? Except today Free alternatives exist that do read the new file formats, specially as they're xml...
This is so fucking wrong and wicked the programmer who did it should go straight to hell. I'm sure there's no functional coesion in there: most likely there are many disparate tasks that should be each in its own function and called from there. I'm sure there is a lot of cut-n-paste in there that should be each in its own function and called from there.
I'm sure you can guess where i'm willing to get to... more important than hungarian notation, comments or documentation in PDF format is abiding for these 2 simple rules: KISS -- keep it simple, stupid -- and DRY -- don't repeat yourself. Once you do it, coding and reading code is a lot easier.
So, my advice: * Give meaningful names to important, global, business rules variables ( local variables like i or c are ok, since they are mostly irrelevant ) or functions/methods/procedures/subroutines * Write short, highly coesive functions/methods/procedures/subroutines * Stop the cut-n-paste madness! If you do it a lot, it's obvious the copied code if begging to be parametrized and be given a name. Programmers altering your original code will be thankful * Write modular code, not a plain, huge, stupid monolithic wall of letters. Even in languages with no namespace support ( C/PHP etc ) a good naming convention for functions of a certain module/header can do wonders...
* and please: meaningful names don't mean phrase-like names like thisLocalVariableIsCool. Conciseness go a long way towards good readability...
"I'm not using Ubuntu because it just don't sound American"
Does Debian sound american to you? RedHat, perhaps? is it just the sound of the word or the fact that it was developed in another country? You're aware that by using Ubuntu, you're not making dollar go outside USA, don't you?... what's the problem, then?
"One could easily argue that they are a parasitic group riding on the backs of our most creative individuals."
Perhaps it was like that before the recording industry appeared. Today, there are no "most creative individuals", just puppets-with-an-attitude spit out by the evil corps to sell all kinds of merchandising except good music.
It also lacks decent documentation. PostgreSQL has got one of the best out there, like most BSD documentation. And the plain C API is just as sane and smooth.
Then, i go to the Firebird site and search for documentation and it's not easy to even have a glance at what a Firebird stored procedure looks like.
Firebird is kind of a bastard step brother of PostgreSQL, since they share the common Ingres heritage... it's got foreign keys, triggers and stored procedures for far longer than MySQL, for instance. It's Borland Delphi's Interbase code gone open-source. However, it's a relative newcomer and most who care are Delphi developers.
Its license is neither BSD nor GNU, which i think also makes up for some caution people have against it.
Learn Python, instead.
.NET CLR ( IronPython implementation ) and the JVM ( Jython implementation ).
.net objects from it...
It's a nice dynamically typed OO language with crystal clear syntax, ease of programming, quite a few very handy operators and builtin types, and it runs anywhere. And i mean it: it runs on Linux, Windows, MacInstosh, *BSD and even on the
Yes, you'll be able to transparently handle java or
Programming in C# or java feels like programming in assembly, comparatively...
"How does this shit get moderated up? The poster is clueless."
.Net for FreeBSD? Where it is today? Does M$ actively supports it as of today? i guess no, since a quick google only shows 2002 articles...
.Net Conventions...
you just took the word from my mouth...
"why did MS release Rotor for FreeBSD?"
Why should i care for a 2002 demo of
"Why did it bother to get C# implemented as an ECMA standard?"
For the same reason they released rotor: good marketing. To show they are playing nice, that they are compromised with standards. Standards my ass! Once they are the dominant force, they make the standards... and drop features originally intended to play nice, like rotor...
"Why does it help, instead of try and crush Mono?"
Help?! Last time i heard, they didn't let the mono guys get into the latest of their
"Why does the API include Oracle functionality?"
Because, M$ like it or not, many of their users prefer Oracle over M$SQLServer...
"In contrast, Java is currently a closed platform with Sun's fingers firmly around its neck."
There are tons of great open-source tools built around java technologies that are absolutely vital to the daily java developer -- like Eclipse, Hibernate or Ant. There are quite a few different implementations of the JVM from the proprietary and open-source worlds.
I believe java owes to a lot more people than just the Sun guys...
"Emacs and VIM are simply outdated in their ability to match the speed/enhancements of a modern IDE."
This is so fucking plain wrong i don't know how to start.
First off: IDEs are a concept from commercial environments like Windows and Macs. For a very simple reason: such environments come with nothing at all for you to do software development. No compilers, no interpreters, no decent command-line interpreter, no debuggers, no web servers, no DBMSs, no decent text editor...
Notepad?! Come on! I'm a software developer, not some news reporter from the 40s or some housewive with free time in my hands to cook...
The reason Unix don't need an IDE is simple, too: it is an Integrated Development Environment, by itself! From the shell, you edit source code, you built Makefiles, you write simple support scripts, you compile, you debug, you list the files in your project etc etc etc... it comes fully loaded with software development goodies.
Today you have some pretty hot IDEs, like Eclipse. They are huge monsters that draw all your computing resources just so that you can feel they are trully powerful. I bet someday they'll be so powerful as to not even need programmers: just describe what you need, and they'll automagically make it done.
Don't get me wrong: i feel Eclipse's refactoring tools to be pretty nice. Not something impossible to be done in emacs-lisp or in vim scripts, but nice anyway.
The problem i see, though, is this: all IDEs i've met ( Delphi, VS and Eclipse ) suck so badly at the text editing itself, that sometimes i feel i'd be better off by just editing in emacs or vim anyway. Vim's extreme ease to go forward and backwards in your jump list history alone would suffice for the change. Simple word completion is also way, way faster than the heavy semantic completion ( Intellisense or whatever other bs M$ marketeers can come about ). It's also, in some 80% of the cases, the effective choice. Don't even ask me about sentence/paragraph ( blocks ) selection and moving through the text: these simply don't exist in IDEs...
Of course, since the text editing component sucks so much, IDEs try to compensate by having such features as class browsers ( a quick listing of all the methods and other declarations in a class ) and the like. So, you can move your hand away from the keyboard, reach for the mouse, scroll down, select an appropriate entry and go there. Somehow, i don't believe it would be so much trouble in vim or emacs...
so, don't make me laugh.
It was pretty complete for it's original purpose: being the high level API of UNIX...
Back in the day DBMSs were still in their infancy and people used their own file-based DBs to store data. There was no web, let alone web servers, servlets and other stupidity. No GUIs, except some crazy concepts which didn't work ok on the slow hardware of the days.
Memory allocation, file, stream and string handling were all you needed to build functional systems.
It has remained that way for historical reasons, but i still believe it's ok. If you ever have a need for DB access, just pick an API among the many available. If want xml processing, pick one.
The one solution fits all doesn't sound ok to me...
"C included libc, C++ has libc+STL
... guaranteed to be on every platform Java was. That's one hell of a feature!"
If you call those comprehensive libraries, then I have a bridge to sell you. The 1.1 library (which was where Java first started taking off) had such features as
That's because Java is not a language with a standard library: it's a development platform, almost an OS, with an associate standard language with which you reference the imense API. It's almost the same as a sh script accessing the POSIX utilities: as long you're in a POSIX environment, you'll be able to use them, using the same standard sh scripting language.
Only thing annoying is that java is a lousy scripting language to handle what is otherwise a nice programming environment. Thankfully, Jython, ruby and others are coming along just nicely in said environment...
"I look back at days before Java, and they seem like the dark ages of computers."
Come on! I believe the 70s to be like the Renascentist ages, with a few Leonardo DaVincis and Michaelangelos. OOP, VMs, IDEs, GUIs, functional programming... all born those days...
Lisp and Smalltalk had programming environments those days which could not be matched on features and sheer complete control of the environment up until recently with the likes of Eclipse...
The dark ages and the java era have one thing in common: people lived in obscurity, paying their deeds to God in the form of self-punishment...
"The lack of information hiding makes it very hard to ensure that fellow programmers use your classes in the way intended"
It can certainly distinguish between private and public instance variables. Just prefix with __ -- say, foo.__bar -- the attributes you want to make private and the runtime will mangle them and make them not directly accessable. Tsk, tsk, 30.000 lines and seemingly not even a peek at TFM...
Yes, people will not be able to say foo.bar ( obviously ), but neither foo.__bar. However, they can take a look at dir( foo ) and see the result of the mangling: you can reference it via foo._Foo__bar ( supposing a Foo class ).
So, if the guy access a private variable, it's very obviously not an accident: it's deliberate. Then, if he's deliberately trying to access a private variable, let him get hurt. He should learn it the hard way...
Oh, you may think the language should prevent that? People in this side of the fence think of that java "feature" to be very limiting. There are some valid reasons why having direct access to private variables should prove worthy, so it's there to be used with care...
"small typos in function/variable names aren't caught nearly as quickly"
I don't understand what you mean by that. You mean at compile time or something? Test. and then test again. and then some more, just to be sure. To quote Donald Knuth:
"Beware of bugs in the above code; I have only proved it correct, not tried it".
By correct, he meant: it compiles ok...
"performance is far behind java"
Are you sure of that? Most python libs are just thin high level wrappers to C libs which are running natively, while Java libs will be running in the same JVM and using just as much memory. Besides, a very high level language as python has many useful operators and data structures builtin ( implemented in C ): i'm thinking specifically in lists and hashes, while Java has to handle the gigantic Collection API just to have something halfway-decent...
It's easy to measure benchmarks by just going with a simple recursive algorithm and declaring java the champ. But this does not count on real world matters. And i believe real world matters are far more taxing on java and its tons of jitted libs than on python and its many thin wrappers to native libs.
"a nice little scripting language."
ah, yes! So now we get to your point. It's just a "little scripting toy tool to do quick hacks", not capable of ever achieving the same level of performance of a "harder", more "sturdy" and "enterprise"-ready compiled language like java.
Now, i doubt why a guy who has python in so low account would have a 30.000 line project written in it when he had not even taken a look at the available documentation to know that you can indeed simulate perfectably acceptable access modifiers?
I know the answer: you're plain fucking lying just to wash your java ego...
"what are the right tools?"
a shell, a compiler and vim.
"go out there and start your own company and in ten years..."
In ten years, if you're one hell of a coder as well as one hell of a businessman ( ouch! ), Microsoft will be buying your shiny company. Sadly, that's the way it works...
so, let the guy just work for them anyway and don't start some astounding business which will just be integrated into the behemoth some years in the future...
"IE is more stable than FireFox"
old stuff is rock solid stable. It's actually a Debian policy...
But what is really amazing is that even by supporting cool new-fangled tech like the newest CSS standards, XUL GUIs, XForms and SVG, FF _just_ crashes twice as much as a piece of software from the early 2000s which sports none of those features at all...
i for one wish it came with kmacs or kim rather than kate... ;)
"prefer C/C++, mostly because of its sane type conversions"
;)
i have moderation permission right now, but won't be giving you a "Funny" because am already discussing...
"once you're that powerful, why be a villian anyway"
I don't know. Why don't you ask your president?
The car ( and TV AFAIK ) were german.
But you don't use a car, you use a FORD. You don't use Volkswagen.
You don't use a desktop environment, you use GNOME. You don't use KDE...
"Pascal and Ruby both suffer from the same problem: too much typing."
Well, that never stopped american Java adoption. Yes, it uses { and }, but too much typing is all around its design. Have you ever tried passing a callback in Swing? You'll understand what i mean...
"GNOME is the default in Redhat."
... later ...
GNOME is now no more a mexican product as linux is a finland one. BTW, the main developers of GNOME nowadays aren't even Icaza and his mexican fellows, but the likes of american companies like RedHat, Sun and Novell. I think the LGPLd american-made GTK+ also contributed to its large adoption...
"Pascal has a hand-holding feel, like you're in a little box constantly fighting the language."
Well, C has no "hand-holding feel" whatsoever and still, there you are fighting its basic design all the way, specially string handling...
"No pointers or similar mechanism."
I see you never programmed Pascal and is talking things out of your ass.
type TSomeRec = record
foo: string;
bar: string;
end;
var somerec: ^TSomeRec; (* pointer to TSomeRec *)
somerec^.foo = "foobar";
etc
"Abstracted strings."
And that is a bad idea because...? It's lack in C is one of the most annoying things, something that C++ rightly got right...
"That's why programmers use C(++): more control."
Pascal and its Borland superlative ObjectPascal has got all that C/C++ got, except for macros ( there are compiler directives though ), coupled with a better designed and more readable syntax overall...
"But your basic idea that Americans have a 'not invented here' bias against some software is just wrong."
Well, if you say so...
Linux was just started by a finland guy. It was hacked by hundreds of people from all over the world. Many americans thought it to be a legitimate kernel for the very american GNU system. It was also working great while the BSDs were still starting.
"GNOME? Developed by Mexicans."
Using GTK+, by american students. Icaza is living in america for a long time and was even offered a job at M$. Besides, his best friend Nat is a legitimate american. Still another case a foreign technology absorbed because it's now perceived as a legitimate american IP...
"(Don't even get me started on the Japanese hardware and software that floods the US market.)"
Japan is nowadays just a shadow of the once proud warriors they were. A mere american colony in the overseas...
"why is kde so unloved here in the USA?"
I'm guessing it's the very american "Not invented here" syndrome.
Good technologies don't have a chance in the USA if it isn't to be actively developed there. KDE is from the germans. OCaml from the french. Pascal never got a chance against USA own C, even having the same capabilities but much nicer language features, like being a real block structured language with real lexical scoping.
Python was to die a slow death against Perl hadn't Guido Van Rossum moved over to the country. Perhaps the japanese guy behing Ruby should move over to so it can be considered the intelectual property of an american? perhaps then ruby would get a boost...
Examples abound...
Microsoft's "Get Defects" :)
Because they most likely won't be able to read the new docs and xls your friends, customers or coworkers will be sending you from their next Office release?
isn't that the exact same way we got here today? Except today Free alternatives exist that do read the new file formats, specially as they're xml...
"I once came across a ~1400 line function"
This is so fucking wrong and wicked the programmer who did it should go straight to hell. I'm sure there's no functional coesion in there: most likely there are many disparate tasks that should be each in its own function and called from there. I'm sure there is a lot of cut-n-paste in there that should be each in its own function and called from there.
I'm sure you can guess where i'm willing to get to... more important than hungarian notation, comments or documentation in PDF format is abiding for these 2 simple rules: KISS -- keep it simple, stupid -- and DRY -- don't repeat yourself. Once you do it, coding and reading code is a lot easier.
So, my advice:
* Give meaningful names to important, global, business rules variables ( local variables like i or c are ok, since they are mostly irrelevant ) or functions/methods/procedures/subroutines
* Write short, highly coesive functions/methods/procedures/subroutines
* Stop the cut-n-paste madness! If you do it a lot, it's obvious the copied code if begging to be parametrized and be given a name. Programmers altering your original code will be thankful
* Write modular code, not a plain, huge, stupid monolithic wall of letters. Even in languages with no namespace support ( C/PHP etc ) a good naming convention for functions of a certain module/header can do wonders...
* and please: meaningful names don't mean phrase-like names like thisLocalVariableIsCool. Conciseness go a long way towards good readability...
"I'm not using Ubuntu because it just don't sound American"
Does Debian sound american to you? RedHat, perhaps? is it just the sound of the word or the fact that it was developed in another country? You're aware that by using Ubuntu, you're not making dollar go outside USA, don't you?... what's the problem, then?
"One could easily argue that they are a parasitic group riding on the backs of our most creative individuals."
Perhaps it was like that before the recording industry appeared. Today, there are no "most creative individuals", just puppets-with-an-attitude spit out by the evil corps to sell all kinds of merchandising except good music.
It also lacks decent documentation. PostgreSQL has got one of the best out there, like most BSD documentation. And the plain C API is just as sane and smooth.
Then, i go to the Firebird site and search for documentation and it's not easy to even have a glance at what a Firebird stored procedure looks like.
there's also:
http://firebird.sourceforge.net/
Firebird is kind of a bastard step brother of PostgreSQL, since they share the common Ingres heritage... it's got foreign keys, triggers and stored procedures for far longer than MySQL, for instance. It's Borland Delphi's Interbase code gone open-source. However, it's a relative newcomer and most who care are Delphi developers.
Its license is neither BSD nor GNU, which i think also makes up for some caution people have against it.