> Actually VS is made up of several independent components, just like your Linux development
Yes that is true (technically) but with a good development environment it all becomes mostly transparent. It's that transparency that keeps developers focused on the project and not on the tools. I agree with you. Developing a single, all encompassing IDE is a big job, but a worthy one. However, developing many semi-usable, smaller IDEs (ala Linux) is worthless because noone is going to use them.
The other problem is that of the GUI library. When it comes to libraries, Linux is the undisputed champ of "too many cooks in the kitchen". X11, GTK+, QT, motif, lesstif, tk, etc. It's a joke! The development effort is spread way too thin and it's only hurting Linux. I hope Syllable will learn from this and decide to keep the libraries simple and manageable even if the widgets themsevles are a little outdated at first.
I downloaded and ran the Live CD of Syllable and I have to say I liked it a lot. I'd like to see it someday give Linux a run for it's money.
The reason I truly believe why Linux never took off in the desktop market and perhaps never will is because there are way too many GUI libraries with way too many interdependencies among them. Back in 1970, console applications were simple. vi, emacs and gdb were all that was needed. Fast forward 30 years and you quickly realize that these ancient tools don't cut it anymore.
If the people developing Syllable were serious, they would waste NO TIME and design a serious development system. Not screen scrapers like xxgdb, DDD or even KDevelop, but a powerful, and easy to use development environment that focuses on designing an application in the designer's language. Unlike current GPL tools that force the developer to figure out 10 other helper languages just to compile and distribute the project (and that's after you get all the right versions and their dependencies installed).
Overall, the IDE would need to draw new developers and keep them, not frustrate them. Something Linux has not done and must do in order to even approach competing with Microsoft on the desktop.
[Required for linux GUI app] GTK+ --> GLIB --> Pango --> ATK --> X11 --> glibc Oh, lets not forget "pkg-config"!
Needed to compile hello world http://www.gtk.org/tutorial/sec-compiling.h tml
[Required for windows GUI app] MFC --> NOTHING (DLLs already on every system)
[Typical development tools needed on Linux] vi, g++, gdb, automake, autoconf, perl,...
Open source is not a panacea for everything. By letting people see the code for the BIOS opens up a world of more incompatiblity. Its bad enough trying to get Linux to work on current hardware. Now we'll need to worry about a certain kernel of Linux working with a certain distro of BIOS?? No thanks! There already are too many cooks in the kitchen as it is.
Unix is and never was a system designed to be used by everyday computer users. Windows from the ground up, was designed for just that purpose (although the instablity factor has hurt this aspect to some extent). Now, Apple's new OSX system has proved that this doesn't have to be the case. Meaning a good GUI can make all the difference. However, Apple's OS is a "closed" system (like Windows) and so it doesn't suffer from the "too many cooks in the kitchen" dilema Unix/Linux suffers from.
Honestly, who needs KDE, GNOME, fvwm, fvwm2, fvwm95, IceWm, Enlightenment, Window Maker, BlackBox, CDE... etc??? Too many choices creates too much havoc and not enough time developing ONE COMPLETE SYSTEM. Again, Apple got it right with just Aqua. Unfortunately, all of the above windowing systems (minus Aqua) never really shielded the user from the "raw" system and so the average folk are not going to waste their time learning a half completed GUI when Microsoft's GUI is so polished and mature. Microsoft's GUI is much more powerful in terms of speed, common dialogs, drag and drop, clipboard, ActiveX controls, cut and paste, fonts. Things everyday users take for granted and come to count on (even if they don't know these technologies by name). Unix's command line as we know is unbeatable. But again, most people don't want or need a command line!
The other problem is the lack of good "polished" software in Unix/Linux and (I feel) that is a direct result of poor (or rather outdated) development tools. Programs like gdb, ddd, vi, make and emacs aren't going to cut it anymore in the 21st century. Software is getting too complex and more and more difficult in design to be worrying about figuring out these ancient tools. New generation programmers just aren't attracted to them (and rightfully so) and find themselves crawling back to Visual Studio, which only boosts Microsoft's $$$ once again. Now, KDevelop is a neat tool and certainly is heading in the right direction, but lets face it, it needs tons more work to become anything near VS. Please understand, I love Linux and I'm no fan of Microsoft, but we need to just face the facts here.
So again, your comparing a "FREE" (very stable) system with a limited GUI (or rather GUIs) and limited (in terms of ease of use) development tools. Versus a (less stable) commercial system, with a fully polished GUI and excellent development tools (VB,.NET). What does this all mean? The Ford F150 V8 truck is great for hauling heavy loads, but may not be convenient for mom to use to go to the supermarket when the less powerful but easier to handle 4-cylinder Ford Focus will do.
I got an idea, instead of patching software, how about patching the brains of some of these $4/hr rectums working at Best Buy and Home Depot to not be so blind and gullible when they're given cash. Teaching them to count wouldn't hurt either.
Its very simple. Like all other technology before it, the portable MP3 will get a lot cheaper and a lot better. You just have to wait. The longer the better. The first DVD-R writer was $1000 only 3 years ago. Now they could be had for a measly $125 on pricewatch and with more and better features. Unless you absolutely have to have one at this exact moment (which most of us really don't), just give it a little time.
This is all great stuff. Being able to play video games, custom program a phone's ring chimes, take pictures and now satellite track the phone's location. But I still don't understand why I still get cut off when I make calls. So why not make connections clearer? Is there no money in solving the ever annoying connection problems with cell phones?
Here in NYC, the largest city in the U.S. with millions of people owning cell phones, the service absolutely sucks and has marginally gotten better over the years. But thank goodness I got the phone that offers the Splinter Cell 3D action game. Otherwise I'd be in real trouble!
Ok, so Perl is now another language in which you can use to program a cell phone. I'm not knocking Perl but... now what?
- My calls still get cut off. - "Can you here me now?" is still the most widely spoken phrase among all cell phone conversations.
It seems people's standards of what is considered an acceptable, workable device is slowly deteriorating since musical ring tones, solitaire and programming languages seem to excite consumers of the 21st century more than getting something to function properly.
I totally agree with you. I taught at two colleges in New York and let me tell you, who ever makes up these curriculums are really doing the students a disservice. I found it very frustrating because these students were pushed along with high level concepts and buzz words. Dont get me wrong. Technologies like COM, ActiveX,.NET, JNI, J2EE, XML, JavaScript, ASP, Applets, CGI, VRML, etc, etc, etc... are all useful and great. But they come and go almost everyday! Whereas basic concepts like pointers, stack frames, dynamic memory allocation, linked lists, hash tables, trees, file mapping and virtual memory are the foundation of all computing and are ingnored or barely mentioned in schools anymore.
Why? Because learning this stuff is downright difficult. But this is where the science is. Most colleges and certification courses who promise big $$$ to it's students who graudate, don't have the time and resources to teach students the basic building blocks, which is why I feel we (America) are losing our grip in IT on a global scale.
Another piece of the spoiled pie is that these students are taught about technology mostly through Microsoft products and Microsoft's marketing and never understand how makefiles or compiler switches work. I can't begin to tell you how many companies I've worked for that hire button clickers and mouse draggers only to find out they are paying BIG $$$ for a guy who can barely solve a problem without looking through his Microsoft technet CD or worse yet, re-installing Windows! We really need to get back to the basics and teach computer science and NOT some company's marketing campaign.
It's actually a very simple problem made more complex for no reason. Look, languages can be broken down into three basic families.
Application development - C, C++, VB, Delphi, Java All purpose scripting - Bash, Python, Perl, Awk Web development - PHP, Javascript, ASP
Each family has it's function. No matter which language you choose from the above careful design and good use of algorithms go a long way as far as stability and efficiency are concerned. I've seen C++ programs run slower then Awk scripts. Why? Too much code. The C++ programmer probably spent lots of time programming things like I/O and buffer overrruns to the point where using Awk would have been a better choice.
Bottom line, experience is unfortunately the only way to gain an understanding of algorithms and optimization. A compiler can only aid the knowledgable and I consider myself just a beginner. However, as a programmer, knowing that Visual C++ or gcc produces the fastest code is a moot since there are many more factors that go into deciding which product to use. How about ease of use of the development environment and technical support? Case in point. I'm a big fan of Linux, but ever wonder why those apps never really look or act polished? That's the direct result of poor development environments for that system since programmers end up spending more time on the compiler and customizing the development environment than they do on the actual problem they wish to solve.
I bet you a million dollars that this is going to be the next "new thing" in America. THE MARS WATCH. Idiots will line up in front of stores to get one and pay big $$$ for it too. You just wait and see.
> Actually VS is made up of several independent components, just like your Linux development
Yes that is true (technically) but with a good development environment it all becomes mostly transparent. It's that transparency that keeps developers focused on the project and not on the tools. I agree with you. Developing a single, all encompassing IDE is a big job, but a worthy one. However, developing many semi-usable, smaller IDEs (ala Linux) is worthless because noone is going to use them.
The other problem is that of the GUI library. When it comes to libraries, Linux is the undisputed champ of "too many cooks in the kitchen". X11, GTK+, QT, motif, lesstif, tk, etc. It's a joke! The development effort is spread way too thin and it's only hurting Linux. I hope Syllable will learn from this and decide to keep the libraries simple and manageable even if the widgets themsevles are a little outdated at first.
I downloaded and ran the Live CD of Syllable and I have to say I liked it a lot. I'd like to see it someday give Linux a run for it's money.
The reason I truly believe why Linux never took off in the desktop market and perhaps never will is because there are way too many GUI libraries with way too many interdependencies among them. Back in 1970, console applications were simple. vi, emacs and gdb were all that was needed. Fast forward 30 years and you quickly realize that these ancient tools don't cut it anymore.
h tml
...
:)
If the people developing Syllable were serious, they would waste NO TIME and design a serious development system. Not screen scrapers like xxgdb, DDD or even KDevelop, but a powerful, and easy to use development environment that focuses on designing an application in the designer's language. Unlike current GPL tools that force the developer to figure out 10 other helper languages just to compile and distribute the project (and that's after you get all the right versions and their dependencies installed).
Overall, the IDE would need to draw new developers and keep them, not frustrate them. Something Linux has not done and must do in order to even approach competing with Microsoft on the desktop.
[Required for linux GUI app]
GTK+ --> GLIB --> Pango --> ATK --> X11 --> glibc
Oh, lets not forget "pkg-config"!
Needed to compile hello world
http://www.gtk.org/tutorial/sec-compiling.
[Required for windows GUI app]
MFC --> NOTHING (DLLs already on every system)
[Typical development tools needed on Linux]
vi, g++, gdb, automake, autoconf, perl,
[Typical Windows development tools]
Visual Studio
I rest my case
Open source is not a panacea for everything. By letting people see the code for the BIOS opens up a world of more incompatiblity. Its bad enough trying to get Linux to work on current hardware. Now we'll need to worry about a certain kernel of Linux working with a certain distro of BIOS?? No thanks! There already are too many cooks in the kitchen as it is.
Unix is and never was a system designed to be used by everyday computer users. Windows from the ground up, was designed for just that purpose (although the instablity factor has hurt this aspect to some extent). Now, Apple's new OSX system has proved that this doesn't have to be the case. Meaning a good GUI can make all the difference. However, Apple's OS is a "closed" system (like Windows) and so it doesn't suffer from the "too many cooks in the kitchen" dilema Unix/Linux suffers from.
.NET). What does this all mean? The Ford F150 V8 truck is great for hauling heavy loads, but may not be convenient for mom to use to go to the supermarket when the less powerful but easier to handle 4-cylinder Ford Focus will do.
Honestly, who needs KDE, GNOME, fvwm, fvwm2, fvwm95, IceWm, Enlightenment, Window Maker, BlackBox, CDE... etc??? Too many choices creates too much havoc and not enough time developing ONE COMPLETE SYSTEM. Again, Apple got it right with just Aqua. Unfortunately, all of the above windowing systems (minus Aqua) never really shielded the user from the "raw" system and so the average folk are not going to waste their time learning a half completed GUI when Microsoft's GUI is so polished and mature. Microsoft's GUI is much more powerful in terms of speed, common dialogs, drag and drop, clipboard, ActiveX controls, cut and paste, fonts. Things everyday users take for granted and come to count on (even if they don't know these technologies by name). Unix's command line as we know is unbeatable. But again, most people don't want or need a command line!
The other problem is the lack of good "polished" software in Unix/Linux and (I feel) that is a direct result of poor (or rather outdated) development tools. Programs like gdb, ddd, vi, make and emacs aren't going to cut it anymore in the 21st century. Software is getting too complex and more and more difficult in design to be worrying about figuring out these ancient tools. New generation programmers just aren't attracted to them (and rightfully so) and find themselves crawling back to Visual Studio, which only boosts Microsoft's $$$ once again. Now, KDevelop is a neat tool and certainly is heading in the right direction, but lets face it, it needs tons more work to become anything near VS. Please understand, I love Linux and I'm no fan of Microsoft, but we need to just face the facts here.
So again, your comparing a "FREE" (very stable) system with a limited GUI (or rather GUIs) and limited (in terms of ease of use) development tools. Versus a (less stable) commercial system, with a fully polished GUI and excellent development tools (VB,
I got an idea, instead of patching software, how about patching the brains of some of these $4/hr rectums working at Best Buy and Home Depot to not be so blind and gullible when they're given cash. Teaching them to count wouldn't hurt either.
Its very simple. Like all other technology before it, the portable MP3 will get a lot cheaper and a lot better. You just have to wait. The longer the better. The first DVD-R writer was $1000 only 3 years ago. Now they could be had for a measly $125 on pricewatch and with more and better features. Unless you absolutely have to have one at this exact moment (which most of us really don't), just give it a little time.
This is all great stuff. Being able to play video games, custom program a phone's ring chimes, take pictures and now satellite track the phone's location. But I still don't understand why I still get cut off when I make calls. So why not make connections clearer? Is there no money in solving the ever annoying connection problems with cell phones?
Here in NYC, the largest city in the U.S. with millions of people owning cell phones, the service absolutely sucks and has marginally gotten better over the years. But thank goodness I got the phone that offers the Splinter Cell 3D action game. Otherwise I'd be in real trouble!
Ok, so Perl is now another language in which you can use to program a cell phone. I'm not knocking Perl but... now what?
- My calls still get cut off.
- "Can you here me now?" is still the most widely spoken phrase among all cell phone conversations.
It seems people's standards of what is considered an acceptable, workable device is slowly deteriorating since musical ring tones, solitaire and programming languages seem to excite consumers of the 21st century more than getting something to function properly.
I totally agree with you. I taught at two colleges in New York and let me tell you, who ever makes up these curriculums are really doing the students a disservice. I found it very frustrating because these students were pushed along with high level concepts and buzz words. Dont get me wrong. Technologies like COM, ActiveX, .NET, JNI, J2EE, XML, JavaScript, ASP, Applets, CGI, VRML, etc, etc, etc... are all useful and great. But they come and go almost everyday! Whereas basic concepts like pointers, stack frames, dynamic memory allocation, linked lists, hash tables, trees, file mapping and virtual memory are the foundation of all computing and are ingnored or barely mentioned in schools anymore.
Why? Because learning this stuff is downright difficult. But this is where the science is. Most colleges and certification courses who promise big $$$ to it's students who graudate, don't have the time and resources to teach students the basic building blocks, which is why I feel we (America) are losing our grip in IT on a global scale.
Another piece of the spoiled pie is that these students are taught about technology mostly through Microsoft products and Microsoft's marketing and never understand how makefiles or compiler switches work. I can't begin to tell you how many companies I've worked for that hire button clickers and mouse draggers only to find out they are paying BIG $$$ for a guy who can barely solve a problem without looking through his Microsoft technet CD or worse yet, re-installing Windows! We really need to get back to the basics and teach computer science and NOT some company's marketing campaign.
It's actually a very simple problem made more complex for no reason. Look, languages can be broken down into three basic families.
Application development - C, C++, VB, Delphi, Java
All purpose scripting - Bash, Python, Perl, Awk
Web development - PHP, Javascript, ASP
Each family has it's function. No matter which language you choose from the above careful design and good use of algorithms go a long way as far as stability and efficiency are concerned. I've seen C++ programs run slower then Awk scripts. Why? Too much code. The C++ programmer probably spent lots of time programming things like I/O and buffer overrruns to the point where using Awk would have been a better choice.
Bottom line, experience is unfortunately the only way to gain an understanding of algorithms and optimization. A compiler can only aid the knowledgable and I consider myself just a beginner. However, as a programmer, knowing that Visual C++ or gcc produces the fastest code is a moot since there are many more factors that go into deciding which product to use. How about ease of use of the development environment and technical support? Case in point. I'm a big fan of Linux, but ever wonder why those apps never really look or act polished? That's the direct result of poor development environments for that system since programmers end up spending more time on the compiler and customizing the development environment than they do on the actual problem they wish to solve.
I bet you a million dollars that this is going to be the next "new thing" in America. THE MARS WATCH. Idiots will line up in front of stores to get one and pay big $$$ for it too. You just wait and see.