It's the Developers, Stupid!: The Real NT-Linux Battle 194
Kelly McNeill writes "The media is nutso for bigness. All you hear about in the tech press these days is that Linux is attracting big partners like IBM, finding big users like Deja.com, and making big IPO money like RedHat. That's all good, and I'm sincerely grateful for anything that helps me make a living without using Visual Interdev -- but to me, small and raw is where it's all at." The quote's from the article, which is big and cooked - and full of graphical comparisons between NT and Linux as useful development environments for small Web businesses.
What is wrong with a full featured IDE? (Score:2)
For linux, the following comes to mind.. Visual SlickEdit, VIM, Nedit. But they are hardly an IDE. It would be great to do Step-Through debuging with PHP from ANY editor.
ColdFusion Studio was nice for that, except it was just so damn buggy.
Mirror ?? (Score:1)
Error 503 Service Unavailable
Powered by Zeus Web Server v3.1
--
Why pay for drugs when you can get Linux for free ?
Link (Score:1)
Either way, based on the summary, the media just doesn't get geekdom as a whole.
They realize that the IT industry (god, I hate that buzzword) is important, but they have no real knowledge about what is going on down deep. On the kernal level, so to speak.
In a way, this has been discussed before, with the media/movie portrayal of geeks and computers. Most computer geeks are going to see a news story like that and think "Cool, now I will be able to get some really kick-ass stuff to put in/on my boxen!" (or something like that)
The MBA's and media types see the same story and just see the numbers: "x number of dollars start going to support product y, that means it must be a Good Thing, therefore I will go buy/support product y and everyone will think I am cool! Boxen!" (or something like that)
What gets missed is that most of us really don't care who is making the goods or coding the toys, as long as it is better than what we had before. Better games, better hardware, (in this case) a better OS.
End point: Ignore traditional media. Just read Slashdot.
Re:What is wrong with a full featured IDE? (Score:1)
Uh-huh. (Score:4)
I've said something very similar a couple of times before. As long as I can help it, I am staying away as far from NT as possible. I can do VB, and I can do VC++, but I'd rather not to thankyouverymuch.
Every time I attempt to do any work in Win32, I feel like I have to undergo a lobotomy first. Win32 IDE may look like eye candy up front, but when you strip away all the makeup, underneath you'll find one ugly beast. The Win32 API is a complete and utter joke. In fact, it's so bad that you can't really work with it directly, and you have to use MFC to get a barely workable API to work with.
Ever tried to put together a simple process, under Win32, to listen on a socket for connections, for some simple processing? This is a ten minute job in *NIX. Win32 forces you to use a convoluted event-driven architecture that absolutely makes no sense, and is a royal pain in the ass. This is just an example, but is quite typical of Win32's idiocy.
I don't really know why people thing that graphical IDEs are so sexy. I have absolutely no problems with autoconf, automake, and make. A graphical IDE would probably be nice to have, but absence of it does not really make much of a difference to me.
--
Developers are pretty important... (Score:4)
Linux delivers an operating system and development software to every user.
Which approach is going to encourage more developers in the long run?
As the market stands at the moment, Linux is certainly attractive to would-be developers. And as computer use spreads into countries where it is not yet widespread among the general populace (China springs to mind), Linux is going to have further advantages: It requires less powerful hardware, and it is open to home grown localisation.
I wonder what effect of 1,000,000 Chinese hackers will have on Linux? Of course a lot of work will go into some really good Chinese language support, but I expect to see some stuff come out that we can all use.
Unless Microsoft can buy off China. But I think China is old enough skeptical enough enough to see through that.
Of course, while developers are pretty important, developers without users are of questionable value.
reluctant VB programmer (Score:4)
Microsoft have always tried to bend over backwards for it's development community - no developers - no software !
But as Linux becomes more popular - an increasing number of Windows programmers are turning to Linux.
Why ?
As a developer for Windows, I hate the way that with every new release of one of their developer packages a 'new' API or programming model is introduced.
(Don't forget the increasing system requirements)
In Vb there are at least four different APIs to develop DB applications - can't they get it right first time (not to mention careless bugs in the components??
The MFC that was introduced is quite simply a mess - the learning curve for MFC is ghastly to say the least. When is a *sane* abstraction layer going to be introduced?
(Then again the Windows api has always been a mess anyway!)
Their development products can only be used for the Windows platform.
The development products in the Open Source Community are cross-platform. For example I use the Windows port of Perl at work (won't allow Linx) and then at home I can continue on my linux hardware.
I suppose at the heart of the linux community are the developers who create the software.
This is the achilles heel of Microsoft.
If there is one way to tackle Microsoft - converting the developers is an answer.
I personally have nothing against Microsoft as a business - only their products are just not up to scratch - this is one of the many reasons why I use linux.
Oh well...back to programming in VB...(I wasted a day trying to get my databound flexgrid to refresh it's contents - then discovered in the MSDN dox that this is a bug and a suggested fix was to use the dbgrid or a 'third party control')
Re:Uh-huh. (Score:2)
Windows and Mac, the API is tied to the OS, so there is no competition in API design apart from the competition between OS.
Under Linux, there are competing APIs, so you can program using APIs defined in Gnome, KDE, Xlib, Motif, tk etc. And this competition is one of the factors which will determine which environments succeed, since the cleaner APIs will attract more developers.
Keep at it (Score:1)
If you get Error 503, keep hitting Reload until it burps out the text. Slow, but not dead.
The other benefit of not using canned apps. (Score:2)
The other constraint is the choice of language/tools automatically limits your designs. While big companies can only tackle the average needs of their customers, OpenSource has the flexibility to satisfy the specialised demands of niches. This is particularly the case with scientific applications which though it likes big and cheap computing power, would be less than 1% of the total computing market. The shift away from tools to services (e.g. Zope) will add a further dynamic to the equation as the limitation then becomes skilled people capable of using the tools. The key to long-term success here is winning the fickle attention of the development crowd.
Oh well, if all you have is a penguin, then everything looks like a fish.
LL
What is wrong with Sybase? (Score:1)
and its free for use.
DB2/Informix.. etc.. cost about the same as a microsoft solution, and if you take away the cost of the NT/MS Licenses
BTW, you can use PHP/Apache to talk to SQL 6.5.. (though I wouldn't..)
PHP3? (Score:1)
If I were king of the world, I'd be running AOL Server with Oracle as the back end. Tcl scripting; yummy ;-).
Re:Developers are pretty important... (Score:1)
Re:reluctant VB programmer (Score:1)
Actually, it's around 7.
Re:ASP is a blessing...ASP is a curse... (Score:1)
You should also have a look at Apache/PHP [apache.org].
I also regurarly see postings on Freshmeat [freshmeat.net] of a tool to translate ASP scripts to PHP. The tool is called ASP2PHP [i1.net]
The uptime of apache and apache/php can be considered a non-issue. They are at least as stable as IIS/ASP and probably even more stable and faster.
Re:Keep at it (Score:1)
Re:reluctant VB programmer (Score:1)
Here's a tip: DON'T USE DATABOUND CONTROLS! Geez. People who call themselves "programmers" using databound controls.... write some code! Seriously, if you're gonna use data-bound controls, you might as well "write" the app in Access.
Yes but... (Score:2)
For the time, yes it does bring back that power and the interest in the changing/hacking/creating a new environment that fits your exact needs. However, if one thing has proved evident in everything I have ever experienced, money motivates all too well. My concern is that all the recent hype and corporate adoption of *nix will corrupt what most of the geeks find to be "experimental coolness-of-the-thing-itself". What's to happen when those how have set the standards for these platforms pass on? Just look at what happened [networksolutions.com] to the internet once John Postel [internet.com] left us.
SL33ZE, MCSD
em: joedipshit@hotmail.com
Re:reluctant VB programmer (Score:2)
I was about to disagree with you (nicely of course!) when I read the next line:
In Vb there are at least four different APIs to develop DB applications - can't they get it right first time (not to mention careless bugs in the components??
Hear hear. I admit to being to complacent in my acceptance of Microsoft technology. It's not just VB folks, it's every MS development platform. Each API has it's benefits and downfalls, and each API accesses THE SAME DATA TYPES!!
Another bitch: I write ASP pages for a living (but dream in Perl and PHP). If you do a SELECT AVG(fieldname) FROM table and there are no records, you would expect a NULL returned, no? Maybe a 0? Okay, you're using VBScript, so maybe it'll return an empty string? None. All of these checks will fail even though printing out the result prints out nothing. What is this mystery variable!!! Aie!!!!
Web Servers for a Mission Critical World (Score:1)
"Zeus' performance is god-like", Infoworld Review
I guess they're expect you to pray that it works, but don't expect an answer.
Re:ASP is a blessing...ASP is a curse... (Score:1)
ASP, Servers and Bugbears, Oh My! (Score:3)
Then, of course, there's always PHP. "But by code is all IN ASP!" you cry! So run it through the ASP2PHP translator that's floating around. Problem solved, with any luck.
Apache is reasonably stable, and there's no reason why it shouldn't stay up. However, if you're concerned about that, install some Linux High Availability software and have Apache migrate as and when necessary.
Databases - Postgres is a decent-sized database system, and MySQL is surprisingly rugged. I don't know the commercial price for Informix, but that is an impressive DBMS system (although it's BLOB system is, well, blobby.) It might be worth checking the commercial price for DB/2 for Linux, as well, as that is an awesome system.
Re:Web Servers for a Mission Critical World (Score:1)
Michael
Really fast Slashdot.. (Score:2)
I got to read the 1st page of three, then when I tried to make it to the next page, I got the same error. Damn early morning Slashdotters. =P At any rate..
I've never read nor been inclined to even look at OSO before, but from the blurbs I saw during my brief stay it looks like all of their stories or articles or whatever you want to call them are submitted by readers/users/lusers/whatever.. As such, I wouldn't exactly refer to it as your traditional media (unless I misread or misinterpreted what I saw.. it is early, after all).
J. Random Idiot will never understand computers, the software industry, or what makes things like the Internet and the Web "go". They'll certainly never understand GNU/Linux, much less hackers. I don't really get bothered by them trying to make a buck of capitalize on the whole "geek" thing, because, well, being a geek, I don't spend a lot of time "out in the world", so to speak.. so the only time I realize how clueless these people are are through my random encounters with reality and the news. All in all, I'd say it doesn't affect me very much.
Warning.. I'm about to go on a tanget.. ;)
I also don't think it's important whether or not GNU/Linux makes it big in the commercial world. ESR seems to disagree, but since when did I ever care about his thoughts? Sure, I don't entirely agree with RMS, either, but surprisingly enough, his views seem much less fanatical and hypocritical to me. With the advent of the Web, it's simply not necessary to be big in the commercial world to make decent software available to those who want it, so all of ESR's bitching about not wanting another hacker project to fail even though its technically superior are a decade or two too late. The network is now large enough that such software can be distributed to everyone without having to bother with commercial vendors.
On top of which is the fact that distributions of the OS were begun by commercial vendors and other groups some time before the term "open source" was coined. But, I've talked enough. I say fuck it, let the public and ESR think and do whatever they want. It doesn't really matter in the long run, because I don't care if Joe Public wants to use Linux or not, or if companies want to market it. If so, fine. Who cares? Let's all get back to doing something more important.
Re:Uh-huh. (Score:4)
Ever tried to put together a simple process, under Win32, to listen on a socket for connections, for some simple processing? This is a ten minute job in *NIX. Win32 forces you to use a convoluted event-driven architecture that absolutely makes no sense, and is a royal pain in the ass. This is just an example, but is quite typical of Win32's idiocy.
Everytime these development comparisons pop up there are posts like this. Let me start out by saying : I feel your pain!. That being said, let me make the same point I make everytime in an effort to be fair.
Yes, Win32 programming is difficult and convoluted. Unfortunately, so is raw XLib programming. No points scored there for X/*NIX. MFC can be overwhelming (and often is). I don't have fond memories of my first MFC steps. But I'm playing with GTK now and to be honest, I'm having an awful time dealing with some of the core concepts (packing for starters!). Programming isn't simple, a learning curve is to be expected and should be embraced if we are to understand the systems and methods we should be using; regardless of the platform or environment.
With regards to sockets, putting together a small app in ten minutes for Win32 isn't all that difficult if you know what you're doing, and I actually think a network application is a prime contender (in most cases) for an event driven architecture. The bottom line is familiarity. Just because we're not familiar with something doesn't mean it's not a viable method!
IDE means different things to different folks. Some are happy with a multitude of xterms running various tools, some like to have it all in one window with widgets and geegaws. I'll take the geegaws, and I don't think my preference belittles me as a programmer. There are plenty of accomplished programmers who share my preference, and there are plenty that don't.
In short - choice is good! Different is good! If you're happy and productive don't let anyone tell you your methods are wrong! Fight the good fight.
maybe Delphi ? (Score:1)
I heard that Borland/Inprise are thinking about making a linux version of Delphi - now that would be great !
the link is supposed to be at www.borland.com/linux/survey
but their servers are currently downBut MS is fighting.. (corrected!) (Score:4)
I've worked for a MS Certified Solution Provider. They are licenced to give copies of any MS product to their employees (at least where I worked)
MS is also providing the resources and incentives to be a MS developer. Have you ever seen the MSDN website? It is really, really good - a better resource for developers than anything except dejanews. (Okay, so it has a little to much eye candy, but still)
MS does pretty good promotions to do their developer exams, too - Trips to conferences in the US (from Australia), stuff like that.
They "pay" (in the form of discounted softwear) solution developers to get their developers certified - and developers don't mind the automatic doubling of market worth for a MCSD.
Believe me, I'm 2 years out of Uni, make AUS$90K (which is HUGE money here - a uni graduate makes 27-32K), and are bored senseless by the work. I'd do anything to do interesting work on Linux, but I can't find any work like that here, even if I take a 50% pay cut.
(BTW, for all you Aussies, did you see the SGI ad in Tuesdays Australian for Linux developers in Melbourne? Who's applying? - I'm in Adelaide, and can't move at the moment)
The other point is that MS is putting out some really cool stuff at the moment, eg SOAP, their XML support in IE5, etc, and under Linux you have to produce it yourself, or maybe use Java. (please IBM, Java2? Please!)
As for VB, say what you will (and I won't argue with you - I use Delphi), but it does allow less skilled "programmers" to produce reasonable programs quickly.
Anyway, the point I'm making (sorry for rambling!) is that I'm sure these startups do exist, but don't underestimate MS. Microsoft understands it needs mindshare and it is going after it.
Re:ASP is a blessing...ASP is a curse... (Score:1)
Best of luck to ya'.
Not really down (Score:1)
Target Practice
Re:Developers are pretty important... (Score:3)
1. Microsoft put a LOT of effort into putting Chinese support into their products. Their Chinese Win98 is actually considered to be more stable than their English Win98. There are Chinese versions of almost all their products, including full documentation. Most Linux documentation is still in English.
2. Piracy: hey, if both MS and Linux are free, then you choose based on the ease of install/use, which MS still wins for the beginner.
3. MS Marketing's own efforts: they try to establish relationships with EVERYONE. Trying to set up a portal in China? Talk to MS and no matter how stupid your idea, they'll willingly "support" you with at least free software. If your idea is good, you may get more than that. At least, that's what the MS reps that I talked to intimated.
4. For those without formal CS degrees, the MCSE is the only other computer certification they can get. The exam is considered rigorous there and the last time I did hiring there, more than half the applicants were MCSE certified.
Anyway, for those of you who think that Linux is going to be real popular in China, you may want to reconsider. Linux is really far behind there and that gap will most likely widen as the new users just follow the lead of the established users and use MS products. China might well become the last MS stronghold in the years to come
Well it's not just the Developers (Score:1)
Just a few thoughts:
As a full time sysadmin and (in my opinion anyway - others may refer to me as a programmer but I don't think so) and a budding script-kiddie I like Linux because it is EASY to manage. I manage some HP-UX Servers and have managed IRIX ones (they were actually pretty cool), all of which I manage(d) remotely from the prompt. I have found managing Linux to be the easiest in all areas fron upgrading, adding hardware, users, server processes etc.
Additionally I agree with all of the opinions that say "It is just plain easier to program on Linux". I peruse VC++ on win32 and of course gcc-lib on Linux and Perl on both. Programming on Linux is so ridicously low overhead it just can't be matched.
I think what a lot of people may confuse is the programming environment issue. That is really where the hardline win32 programmers I know attack Linux. Seeing as how I was introduced to Computers from a mainframe perspective (I never really used a PC until Linux came out) this is hard for me to undestand, but the counter argument is -- there is emacs, there is the shell-interpreter (where you can create your own environment --- geez), emacs and so on - or make your own!
I think a lot of it boils down to perspective and how open minded a person is, for me, Linux actually introduced me to PC architectures, but for people who went to say a school somewhere and were taught the MS way (whether a college or some trade school - whatever) they simply "don't get it" all of the time and some folks are just plain disagreeable (on the flip side, I couldn't manage a win32 PC until I downloaded cygwin's GNU utils - so am I suffering from the inability to comprehend win32?).
Well -- food for thought anyway.
Here is a mirror (Score:2)
I put up a mirror of the 3 pages, it doesn't include the ads, but at least you can read all the text.
Link [195.115.63.44]
--
Why pay for drugs when you can get Linux for free ?
True - Kylix (Score:1)
Yep, they announced it a while ago.
It is called Kylix, but no one knows much about it. It is supposed to be relased next year, though... Sweeeettt!
Winsock Berkley socket compatible (Score:1)
This is a ten minute job in *NIX. Win32 forces you to use a convoluted event-driven architecture that absolutely makes no sense, and is a royal pain in the ass
Actually, I have, and having done Winsock API coding, I can say that Winsock is Berkley sockets compliant and so you can use select instead of the event driven model. Why did I use the event driven model? Because I still remember using Trumpet Winsock for 3.1 and enabling a feature on it that prints out every winsock call. I did this to learn how to program Winsock. What did I see? Netscape (one of the 1.x versions) in what appeared to be a tight loop selecting the whole time. As a fan of interrupt v. polling, I decided to use the event model.
The event model is also not that arcane to people who do Window API programming. Or PalmOS programming, since it's the same model. I hear Mac operating systems are like that too.
I agree there are cleaner models (Java JDK 1.1+ for instance), but it really isn't as horrible as all that.
Everyone wants to program C++/Linux (Score:2)
Re:Uh-huh. (Score:1)
There was another under Windows. Borland's OWL. May it remain dead. ;)
Re:No you are just not a good programmer (Score:1)
The Media (Score:2)
Re:ASP is a blessing...ASP is a curse... (Score:1)
Re:reluctant VB programmer (Score:1)
The Chicken and the Egg? (Score:2)
Contrary to what the "mass-media" wants the entire world to believe, there is still a HUGE market for small, well-built, custom applications for a wide variety of things: Contact Management (real stuff, that actually works well for a small business), db applications, niche markets, etc. This is the area that I work in. Developing apps for niche markets and "small" db apps that typically run against desktop databases. While I know and love Linux, my customers are like lambs to the slaughter...lock, stock, and barrell to the Redmond camp. This forces me to develop for Win32 as opposed to *nix, X/Win, etc..
So what comes first?? Do people like me just take the plunge and develop for an "emerging" platform and possibly make no money?? Or do we develop for the demand from customers (which is still _VERY_ clearly Win32)?? This is the real battle in the "small and raw" camps (at least in mine).
Re:Mirror ?? (Score:1)
Drawback is that if you get thru, download times could be quite long, during the server overload.
Re:reluctant VB programmer (Score:1)
New to linux (Score:1)
So far, as far as I can tell, it has now been developed to the point where the difficulty of installation is not really any greater than win9x.(And this is coming from a person who has reinstalled Windows about 3 times.)
In fact, the more I look at it, the more it seems to be a case of Big Brother vs An Infinite Number of Monkeys. And I mean that in a _good_ way.
Infact, I only wrote this so I could call Linux progamers monkeys
Re:Developers are pretty important... (Score:1)
Hmmmm, I already see that: something like "A billion of users should be enough for anybody?"
MindShare (Score:1)
1) I'll take over your market.
2) I'll lock you into my products.
3) I'll make what you're developing for a moving target for no good reason.
As for "As for VB, say what you will (and I won't argue with you - I use Delphi), but it does allow less skilled "programmers" to produce reasonable programs quickly."
Quick n' Easy is great for the selling of cake mix but it's lousy for producing robust code. Also those 'reasonable programs' end up having a longer shelf life than anticipated. If we learned anything from y2k, one lesson is clear. Making short-sighted decisions can come back to haunt you. Those 'reasonable programs' will come back to haunt us.
.
I don't think Deja is Linux... (Score:1)
Its the API's Stupid! (Score:3)
As has been pointed out before, the important thing is programmer mindshare. Many programmers are locked into Windows development because they have spent a good deal of time learning the API's and the development tools for it. Not because they love it. And, so long as there are so many jobs available doing VB or MFC development, there is no incentive to retrain.
One point I haven't seen mentioned here much is this -- VB, MFC and COM make possible the creation and easy re-use of pre-built components. Although it is certainly true that 'real programmers' don't use ActiveX controls, business software development (the lion's share of code being written every day) is made easier and cheaper because of them. Until the Open Source movement can provide similar component based environments (and plenty of third party components to go with it) there will always be at least one good reason to develop that new accounting program in VB.
Enterprise Java Beans do provide much of the same plumbing as COM (arguably, even better), and many Java tools vendors are working to support EJB's as seamlessly as ActiveX controls in VB. But Java is not Open Source. It is controlled by yet another big company...
However Microsoft is dropping the ball in this area themselves. It seems to me there is a real opportunity here for the Open Source Movement. If we are willing to step up to the plate.
Jack
Yeah but... (Score:1)
Developing Linux is important. But to me, and most people I know, eating is more important. Having a job that supports me and allows me to eat is critical to my ability to hack on Linux in my free time. ESR talks about the "gift culture". This culture supports Linux because most of the developers of Linux have other jobs which feed them. For most people, those other jobs don't have Linux as the central focus, if it's even used at all. Linux is something done in spare time, for pleasure's sake. It isn't something that helps put food on the table.
But, if the economy were to get tighter, and fewer jobs became available for developers, those who would be willing to spend personal time on work related projects, would have a competitive market advantage over those who weren't. Thus the development of Linux would slow down, because fewer developers would be spending time on it. In that scenario, the market would not be able to support Linux as a hobby.
Linux in the business environment can only help to dedicate more minds to thinking about Linux and deploying applications for Linux, not as a hobby, but as a critical part of our economic infrastructure. This is why (IMHO) supporting Linux in commercial settings is so important, and why an announcement from IBM (et al) is such big news.
MySQL not good for dB applications (Score:2)
MySQL may be okay for really simple applications (like a guestbook) but it is lacking features that a robust dB application needs. There is no support for Foreign Keys [mysql.com] nor does it look like there will be any in the future. Foreign keys are needed to ensure data integrity and they just aren't there. You basically get a lot of the same problems as in weakly types languages with really no gain (unlike the gain you get from weakly typed languages). There are no stor ed procedures or triggers [mysql.com]. While I'll agree that SP code can be done in the dB client (the ASP), you have to make sure you call trigger code before every operation and check the result and it really isn't the same as having actual triggers.
However, these two things are kind of forgivable, but mySql doesn't have support for transactions [mysql.com]! So if an operation fails in the middle, you can't roll it back. They claim they will have something like transactions without rollback soon. While that helps with some concurrancy issues, the roll backs are really needed when entering data into a normalized dB.
Maybe, you can use MySQL for the back end to EJBs for object persistance. The EJBs ould give you the data integrity and the event model that you would use for triggers (you'd trigger code in the EJB anyway since it is suppsed to encasuplate business logic), but I'm not sure if you can do EJBs on a dB without tranactions.
So, if you are going to have a novel web technology, I would suggest against using MySQL, although if you Web application is novel because of content or something and you want to save some money, it might be okay to forget about the robustness at first.
My real life experience with Apache/Java/Sybase (Score:2)
Cost: $0. Sybase 11.0.3.3 is free.
This setup has been running since February/March(? can't remember exactly). I've only had to bring Java down to reload new Java classes, and at one point it had been running for several months without a peep.
This system supports remote/local reporting through a web browser on a 200M database that is refreshed in its entirety every 30 minutes.
I think I had to dump a transaction log once. It's the most hands-off system in the company, and I wuv it.
The box was up running for 180 days after I installed it without intervention. It went down once (gracefully, thank you APC) from a power outage a month or so ago.
Regards,
Re:Uh-huh. (Score:1)
The worst thing about Win32 (and Win16) before it that generally it was a copy of UNIX API's but renamed and rejigged. Typical bloody M$ reinventing the wheel.
The Win32 API gets worse though cos its non-orthogonal and often has 20 ways to do the same thing, or there are methods that do everything in the world as long as you fill out the 44 pages of parameter configurations.
As for MFC, its the biggest pile of doggy-doo this side of the Universe. Partly designed by Smalltalk programmers, finished designing by C programmers, partly implemented by assembler programmers and completed by FORTRAN programmers. The stupid idiots that wrote it didn't even seem to know what a reference was. Coupled with the insult of two phase constructors non-orthogonal API's and the use of macros substitution from hell. Visual C NOT Visual C++ and that's an insult to 'C' programmers.
Now neither Eifell, Smalltalk nor Java are perfect, but they're some bloody good examples of how easy API's can be made to use. The 20 line multi-threaded server in Java is a good case in point.
Or perhaps stretch our minds back to CommonView from Glockenspiel, a damn good example of a product that was not allowed to mature (M$ bought it out, threw it away and announced MFC).
I'm constantly amazed by the amount of shit that is programmed. Even more so by the breed of 'C' programmer that thinks leaving out carriage returns and spaces actually optimizes their program. Now sometimes a good obscure programming challenge is fun - but leave that to the Obfuscation Challenge run every year.
IDE's can be good and bad. Let's face it most of them are bad. They're great for learning (sometimes) but how often does the professional programmer curse them ? They attempt to do everything and normally do everything very mediocrely - if not badly. Plus they tend to forget that the professional normally uses a variety of environments and languages - but Whoops they're only partly good at doing one!
The elements of a good environment are:
1. A damn good editor
2. A damn good editor
3. A damn good editor
4. A good debugger (OK I can wish)
5. An easy way to manage and build files
6. A screen painter if appropriate.
7. A good help system There's me $50 and I'll just go and foam at the mouth in the corner.
Re:What is wrong with a full featured IDE? (Score:1)
--MD--
Re:Yep, they did (Score:1)
One of the first big sites that did. They used to let people know about it, too, but now I can't find any mention on their site about it at all.
Re:What is wrong with a full featured IDE? (Score:1)
I don't really want to start another holy war here, but for me (and ERS too
Oh, yeah, I don't mind if Linus considers it "pure evil"
Re:ASP is a blessing...ASP is a curse... (Score:1)
After reading alot of the replies to the original post, I feel the need to throw in my $0.02. Sure, all of the options that you have recommended are all viable, reasonable, intelligent options, but you have to understand that the ultimate decision will come not from the admin, but from his PHB. I left a very large shipping company earlier this year. I can't mention the name of the company, but I can say that they absolutly, positivly have a thing for loud colors. I was a network admin in charge of 2 Novell Netware 3.12 file servers, a few ancient Sun boxen and the occasional random server here and there. Every day was like a South Park episode.
Me: Boss! Boss! Our Netware boxen just shit themselves during the Y2K compliance test you made me perform (even though you could look at these things and tell that they were kinda long in the tooth)
Boss: Well, what are YOU gonna do about it?
Me: Uh, put in a budget request for new servers at the next departmental staff meeting?
Boss: No, that won't work. You see Geek, (kneels down on one knee and puts his arm around me. Happy music begins to play) we need all of the money in the budget so that we can give it to Oracle.
Me: ORACLE? Why? This is a Sybase shop! All of the DBA's and (snicker) developers are all trained on Sybase! Why are you gonna screw them?
Boss: (Laughs patiently) Oh, no! We're not screwing all of the people that have trained for years on Sybase, we're "adding value" to our employees.
Me: I still don't understand why our department would go to all the trouble of completely upgrading our databases and retraining all of our people at the cost of loosing our network.
Boss: Well, I'm sure that you'll think of something.
Me: I HAVE! I NEED NEW SERVERS! Look, all I need is the hardware. The OS would be easy - I could use Linux!
Boss: Oh, no! We can't use Linux.
Me: Why not?
Boss: Because there is no giant cash-cow company associated with Linux. What happens if the Linux boxen go mad and eat a small child? Who would we sue?
Me: But Linux wouldn't do that! It's stable!
Boss: And then there's the poor IT Director to think of.
Me: Why should I care about that asshole?
Boss: He's what we call a "Novell Bigot". Novell could wipe it's collective ass with a CD and he'd want to install it on everything that had a processor. Besides, he owns alot of stock in Novell. Now, you wouldn't want his mistress to go without those new breast implants that he's gonna buy her with the profits he gets from his stock, would you?
Me: This sucks! What happens when we all come into work on 1/2/00 and the network is completely hosed?
Boss: Well Geek, that's when YOU bend over and "take one for the team".
Big companies don't buy software based on whether or not it works well - they buy it because some shitbrained VP saw a big glossy ad in Wired and liked the pretty colors. You want Linux in the workplace? Produce a distro, loose the penguin and put Pamala Lee's tits in a full-color glossy gatefold ad in the middle of next month's Wired.
Re: Your missing the point! (Score:1)
The point is that VB lets a bad (or lets say average programmer produce a program quicker and probably better than say Python/GTK or something.
Unfortunatly, companies can't always find talented programmers, and for those untalented programmers, and for simple programs, VB is better. I guess it could be argued that if everyone used C and Perl and command line interfaces it would get rid of a lot of the crappy coders around, but that isn't likely to happen.
Yes, those "1 week" projects end up growing into huge, unmaintainable messes, but that happens in any language (Mozilla anyone?), and is more a factor of project management than the language.
Try telling that to management, though!
GNOME document object model (Score:1)
Of course, it isn't ready for commercial quality code yet.
Re:ASP is a blessing...ASP is a curse... (Score:3)
In state 2, you realize that ASP is essentially the same kind of tool as
PHP
ePerl
EmbPerl
NeoWebScript (perl or Tcl)
AOLServer's Tcl integration
Netscape's server-side Javascript
And a whole bunch (100s, I think) or tools of the same ilk.
Later, when you have a large web site, you realize (stage 3) that mixing your HTML and scripting all together is really a pretty bad idea, so you start using the above tools in a rather different way than you used to, and eventually start thinking about tools that are intended from the beginning to keep the HTML templating seperate from the programming.
Re:reluctant VB programmer (Score:1)
In Vb there are at least four different APIs to develop DB applications
Actually, it's around 7.
Shall we?
VBSQL
DAO
RDO
ADO
LDO
DDO
(I'm missing some...)
For the back ends you have
OBDC
MSSQL
OLEDB
never mind the third party ones like Oracle.
I'll tell you two thing I which Linux Development had:
1) Browseable type libraries
2) Context sensitive help.
Give me both of these, and I'll ditch windows for good.
Re:Uh-huh. (Score:1)
From the outset, the UNIX conceptual model is something you can "wrap your brain around." Once you understand file operations (and file handles, etc), you understand 80% of what you need to know to do some decent development. The same concepts you use to twiddle one device, you use to twiddle others.
Plus, everything is "out there" and has been for a couple of decades. There is no real archane knowledge conveyed by a mountain dwelling hermit (Ken Thompson?) that is the secret to development. Neither you need to trade a kidney to an organization like M$ to get a piece of the action or the inside track.
Programming for Windows hurts and, sometimes, I wind up with the bohemoth that I can't even stand to look at much less continue to work on.
Clearly, at Microsoft, the KISS rule went right out the MS-Window(TM).
Pirated Development Software (Score:1)
In the days of the 8-bit machines, home development was almost as common as machine ownership, because most of the machines came with BASIC on ROM. The likes of the Amiga had cheap BASIC-derived environments like AMOS. These days, the only way a young Windows user can get their paws dirty writing software for their machine is by pirating software... What fourteen year old, after having forked out $1000+ for a machine already can possibly afford another $1000 or so for development tools?
As the article suggests, the low-end segment of the developer market is an important one - any platform needs to convince people to start programming for it at some point - the only way this can be made possible for a Windows user is by pirating.
I wouldn't be surprised if MS deliberately turns a blind eye to High School/College students who pirate the likes of VB and Developer's Studio - after all, the more people who become familiar with these tools, the more people who are going to be programming for Windows.
So the contention that the price of all that Windows software prohibits people from becoming MS junkies is a false one. Perhaps honest businesses can afford it, and these are the people MS really has to convince to pay, but right at that crucial low-end, software can be just as free as it is on Linux
reluctant VB programmer "NOT SOFTCORE programmer" (Score:1)
FYI I am versed in C, C++, Pascal, various machine code programming on a variety of platforms (e.g. z80 embedded systems, Windoze, Linux etc...) and have been for the last 10-15 years(Yes I am an old fart by today's standards!)
I am not by any means a wizard of all the languages I have used but I believe I understand the principles of programming.
I would like to make it clear that the programming language *Does not define how skilled a programmer is* it is the understanding of the concept and fundementals of programming, analysis/problem solving, logic, understanding of hardware..etc.. that make the difference.
To suggest that Visual Basic programmers are lesser skilled is an inaccurate generalisation and somewhat insulting when this is implied.
I personally do not use VB because I want to - I use it because it the standard developing platform in the companies that I work for.
Think of this before bashing VB (Score:1)
* Linux makes good servers
* Win95 is EVERYWHERE as far as desktop machines in business is concerned
* MS VC++ is a powerful tool, but it takes alot of work to get the same result as a monkey can get in VB.
* What else are you gonna write the front end to your Linux server in if there is a room full of users with low comp. literacy who need their data quickly
* Sure it's not the most elegant soloution, but most importantly it's good for the purpose.
* Two other things in it's favour, any monkey can learn it, and the support is great. Both reducing the cost of maintenance
POINT: Less OS bashing guys, the two can play *together*
Having said that, my home network is still (all but one machine) Linux
Re:PHP3? (Score:1)
Re: ASP [etc.] Is anyone using Zope? (Score:1)
Linux good for beginning developers (Score:1)
Once all those youngsters get older, they will be used to the UNIX paradigm of programming and anyone who's programmed in UNIX will find that the Windows method of doing thing will make their flesh crawl.
Get 'em while they're young, best way to go.
Re:I don't think Deja is Linux... (Score:1)
Re:MindShare (Score:1)
Re:ASP is a blessing (Score:1)
Any language can be used to create obsfucated code.. The more important question is which languages can be used to create robust code.
2)ever tried to open a database on *any* platform in just 2 elegant lines of code on linux/perl? guess not.. let alone send someone a script with an access database (made in an hour or so), let him just upload it to the webserver and it works.
Yep, and yep.. mysqldump dbname > outfile. And connecting to any db is simply a matter of having libs for it (last I knew both Perl and PHP supported quite a large range of db's as well as ODBC) then pass it a connect() [or equivalent] and query(). And what's this any platform thing.. You mean: any platform that has ASP. Last I knew there weren't a hell of a lot of those out there..
show me, linus!
Why do you want to see linus?
dan
Lightning fast error message. (Score:1)
I don't know, that error message is probably one of the fastest I've ever seen.
It must be some kind of capacity issue, the server doesn't seem to be suffering any speed problems at all... I just can't figure out why the page doesn't say "capacity exceeded" or something.
My Website (osOpinion) got /.ed (Score:2)
Re:reluctant VB programmer (Score:1)
Here's my take on that.
Many many, too many times in VC++6 I've had programs with mult headers/cpp files that would give linking problems, wouldnt compile, just didnt work. I've taken the exact same text files to another computer at my home(yes, i do have 2 NT boxes, 1 for me, 1 for gf, the rest are linux, I swear!) and the program compiles/links/runs just fine. I've probably restarted half of my projects because of this bug. In linux, never had the problem with this. I don't really have a preference for coding in one or the other, I mean for my money, gimme a text editor that I like(vim) as opposed to the VC++ no features text editor. But since everywhere but home is NT and VC++, I use it at home as well.
Since most of the really advanced features of VC++ (the dummies stuff, where a wizard writes half your app) would only work on windows, I can't see them porting the program.(maybe ignorance is showing here, I dunno).
Matt
For your reading pleaseure... The article in full (Score:3)
It's the developers, stupid!: the real NT-Linux battlefield
The media is nutso for bigness. All you hear about in the tech press these days is that Linux is attracting big partners like IBM, finding big users like Deja.com, and making big IPO money like RedHat. That's all good, and I'm sincerely grateful for anything that helps me make a living without using Visual Interdev -- but to me, small and raw is where it's all at. As a recent Salon story [salon.com] hinted, by the time something gets big enough to have major media outlets and MBAs and marketeers crawling over it, much of the juice of the thing is gone. The masses might find Bill Gates worthwhile because he's on the cover of Forbes magazine; but for a minority, the one interesting thing he ever did was write a little BASIC compiler on a crappy paper tape when he was a teenager. It's all been downhill from there.
The tiny raw startup is the real locus of the Microsoft-Linux showdown. Forget the desktop, forget the enterprise, forget the few big content/commerce sites -- it's unclear whether Linux can win in any of those segments, and in any case it doesn't matter. The important thing about Linux (and Open Source and the Web) is that it shifts the balance of power back to the independent developers, the underfunded experimental coolness-of-the-thing-itself startup-type hackers.
OSS (including Linux) has radically reduced the costs of development and vastly increased opportunities for collaboration. The Web has opened up new vistas of demand, and nullified most distribution problems. Funding and business services are far more available now; while the potential for personal peculation (or the opportunity costs of developing within a corporate framework) tend to make startups seem relatively attractive. The most innovative and productive segment of the tech industry has famously been the two geeks in a garage, and now they can compete strictly on the basis of ideas and skills rather than corporate resources. Somewhere in this segment are the Yahoos and Inktomis and Netscapes and ids and ebays and even slashdots -- basically all the things that make people buy computers in the first place -- of the future. It's all about the applications, baby -- because without a continuing stream of gotta-have-it apps (and the sites on which they're implemented, often transparently to the user), computers are just typewriters and the Internet is just a color fax machine.
Microsoft cares about developers, or they say they do [cnet.com] -- and they should, because that's how they got to be the giant iguana of the software industry in the first place. DOS/Windows/NT has always been about as sexy as a Depends adult undergarment; but even if an OS ain't cool, it can still win by being super-dependable, ultra easy to use, or overwhelmingly popular with application developers. The last rationale has traditionally been Microsoft's trump card, the reason that developers grumbled and cursed at Visual Basic but kept buying. I'm one of many people who basically keeps a Windows machine around just to read PowerPoint documents (and, I confess, I'm gonna keep using IE until something better comes along) -- which suggests that one or two killer apps make the OS decisions for you.
But in August 1999, the Gartner Group released a study claiming that the number of Windows-first developers is in the middle of a sharp decline from 65% in 1998 to 40% in the year 2000. A quick flip through the job ads in bellwether Silicon Valley shows more *nix than Windows development jobs, especially in the hot new sectors. For the first time in a long time, the road to software nirvana does not go directly through Redmond.
Thus, for the first time in a long time the question of how the startups developing the apps of the future choose their platforms is an interesting one. As I hinted in my previous essay [osopinion.com], I will argue that Microsoft may now be putting out halfway-decent small business software, but their marketing strategy utterly fails to reach the more innovative part of the developer community. Linux, in contrast, seems to effortlessly meet the needs and philosophical convictions of the raw tech startup. This seemingly insignificant difference, almost impossible to account for in traditional marketing terms, could have startling consequences down the line.
How startups choose their platforms
Let's say my partner and I are developing something: a product recommendation system that makes sense to humans, unlike the bad jokes heretofore palmed off on the public under the rubric of "collaborative filtering". We've written a bizplan, learned a few stupid PowerPoint tricks, given slide presentations, schmoozed with suits -- and for those of you who've never done it, let me tell you what a thrill it is to sit through dozens of "where the software industry is going" sermons (summary: technical innovation is dead/pointless/the problem and big corporate power is good/inevitable/the solution) by a bunch of people who don't know Hello World from Hello Kitty -- but that's a different essay topic.
But for us, the crucial thing is the implementation. We just think it's lame to go after funding with nothing but a pile of paper, a slideshow, and a song in our hearts. We've also discovered that finance types, many of whom are refried bankers or accountants or real-estate moguls, don't really like to invest in software. Startups that are basically about tweaking a business model tend to get more dates than the ones that depend on complex new systems working as designed, which give VCs bad dreams about all the things that can go wrong. (Caveat: this may not apply to Silicon Valley, where all the VCs are hackers and the streets are paved with gold.) So for a software venture to compete with the mass of SellOnTheWeb.coms hatched up by MBAs who speak the same language as the funders, the idea needs to be fully implemented or as near as dammit. Realizing this, we're going to put up an extensive alpha on the Web, complete down to the last font style and hyperlink. It's gotta rock -- this is our whole business at stake here. So how will we choose a development platform?
Cash-poor
The very first variable is that we're knowledge-rich and cash-poor. Really, really poor. We keep hearing how people in Silicon Valley can get millions of dollars just for the right concept, but that ain't how it works here in the Midwest. In Palo Alto, "startup" connotes the thrill of entrepeneurship, the adventure of high growth, the possibility of massive stock options. Saying you work for a startup can get you some play with that cute girl/guy at the espresso bar. Here in Chicago, "startup" means you and your buddies gotta look under the sofa cushions for enough change to buy a CheapBytes CD-ROM. Plus, your mom calls you up every other day to beg you to get a real job so she can hold her head up at your cousin's upcoming wedding reception -- you're good with technology, have you ever considered becoming a Xerox machine repairperson? So the idea of spending thousands of dollars putting together a little network so you can put out a demo that may never come to anything is a laugher.
Programming tools
We certainly can't claim to be visionaries here: my partner actually wrote our first web application (the recommendation engine currently used on www.mysteryguide.com [mysteryguide.com]) in Macintosh Common Lisp. As the probability of Lisp world domination dwindled, we did finally decide to move over to Java. Of course, that's a tiny bit awkward in Microsoft world due to the long-running Scott-hates-Bill soap opera (J me no plus-pluses and I'll violate you no licenses).
We've also started to use Java servlets and Java Server Pages. I had sort of thought Microsoft might buy Live Software, makers of leading commercial servlet engine JRun -- all together now: embrace, extend, exterminate -- but those clever Allaire boys scooped it up instead. We've used both the JavaSoft Win32 JDK with JRun, and the Blackdown Linux JDK with JServ (the Apache Project's first servlet engine). The latter combo has the definite edge because it's free (speech and beer). (And before you flame me for hypocrisy: we are seriously considering GPLing our e-commerce software tool but nothing's final yet.)
There are still people who have a specific reason to develop native, like game makers. But I think we can all feel the momentum toward cross-platform and especially web-based apps, once those bandwidth and privacy issues get worked out. And this is where what went around is coming around for Microsoft. They've done tons of things over the years to make developers -- especially those in small shops -- fear and distrust them. Like a straying spouse who's just been served with the divorce papers, Microsoft wants the love back now -- but is a free subscription to Microsoft Certified Professional Magazine gonna do the job?
Client-server versus server-server
Everyone in our shop develops on a server. Clients are just bimbo-boxes for reading mail and data entry and goof-off web surfing. I can't even look at most of my work without having it processed by a web server, and I'm always needing to connect to local and remote databases (it's possible I could work around this issue if MS Proxy Server didn't choke on telnet, but that's already in the subjunctive tense). Because we run separate NT and Linux networks, we need to move things back and forth between machines (remember, BackOffice Small Business Server doesn't form trust relationships with other servers, and the ftp on my SBS installation doesn't work). We need to run big processes that tie up tons of cycles. Finally, we're a virtual organization with people doing parts of projects in disparate locations. So client-server computing in the SBS sense is already a paws-up model for us.
Here's a chart of the stuff we use on a daily basis in our business. It clearly shows the awkwardness which NT imposes on the tech startup, versus the "instant tech startup in a box, just add connectivity and stir" flexibility of the Open Source model.
Function BackOffice SBS Linux Web service Server (up to 5 domains) Choice of servers (we use Apache) DNS No Primary, secondary, or caching SMTP/POP Server (one domain) or client Server Networked servers No Yes Scripting language ASP (or sold separately) Choice of products (we use PHP) SQL database SQL Server 7.0 (see note) Choice of products (we use MySQL) Servlets Sold separately (we use Jrun)Choice of products (we use Jserv) Java Yes (we use the JDK) Yes (Blackdown JDK) JDBC driver Sold separately Yes (we use MM.MySql)
Note: it's not clear under what circumstances, if any, SBS allows you to deploy SQL Server on the backend of a public website, as opposed to in a development/intranet environment. There's no technical barrier to doing so. The enterprise version of SQL Server requires a $3000 per processor Internet Connector License, but there's no mention of the topic one way or the other in SBS materials. Thanks to Jiva DeVoe for this info.
Software licenses
When people talk about "scaling", the implied modifier is always "up" -- presumably from a big server farm to a humongous one. But let's get real: a relatively small number of businesses require more than 16 processors, more than a thousand simultaneous connections, databases stable over hundreds of GBs, and instantaneous mass-customization for millions of users. Why don't we ever talk about scaling down -- in other words, that part of the spectrum from a big server farm down to one box? The vast majority of businesses, and an awful lot of the most interesting ones, live here.
In the real world, Linux grows seamlessly from the first workstation to the quite large office. You can churn out all the custom boxen you need whenever you need them without worrying about a thing. Microsoft, on the other hand, requires a software startup to endure what we might call "punctuated equilibrium" in order to stay within the bounds of restrictive licenses and technologies. At any given point, a MS solution will require you to pay for something you don't need, or go without something you really do need but not quite enough to justify the cost, or violate the license. Wasn't it de Toqueville who said bad licenses force good customers to cheat?
I certainly don't claim to be an expert on Microsoft licensing; in fact, the whole subject confuses and bewilders me. I tried to learn about it on the MS website, but didn't get too far into the arcana: the licensing glossary was a dead link so I still don't know a PUP from an UPG, and it's not easy to get info on volume discounts and Open License deals. But this is my first crude whack at trying to figure out a typical software upgrade path from the needs of a small development-only environment to those of a 51-person software company running both a production website and a development-oriented intranet:
Redhat Linux Microsoft 1 intranet server, up to 5 clients 79.95 1499 1 developer software package (programming and office) 1079 (Visual Studio)249 (Office2000)
1328 subtotal per (x 51) Each 5 additional clients (up to 50) 299 (x 9)
2691 subtotal Back Office Server upgrade (over 50 clients) 4349 1 single-processor web server with database 158 (MySQL) 639 (NT Server)
1239 (Site Server)
2999 (Internet Connector)
1399 (SQL Server)
2999 (Internet Connector)
9257 subtotal per TOTAL 237.95 85524.00
I realize that this chart is completely artificial. On the one hand, if you had a 51-person development team, the price of Visual Studio would be the least of your concerns. On the other hand, I can't imagine 51 programmers being willing to share one intranet server for everything. Also, while it's true that many smaller organizations aren't going to run their own web servers, application developers find it harder and just as expensive to be hosted elsewhere. My main point, however, is still valid: that the Microsoft licensing maze hinders the tech startup that chooses it.
Business rationales
Here I must venture into a sensitive topic: who makes the IT decisions, and on what grounds? Leaving aside the edgy cracks about nerds and PHBs, I think we all know there is a gap as wide as the Grand Canyon between the thinking of the two sides. The party of the first part makes decisions based on their own training and experience plus discussions with other techies they respect; their motto is either "Once you go *nix, you never go back", or "Mo' bugs, mo' money.". The party of the second part gives priority to non-technical rationales, including customer preference, the difficulty of hiring skilled workers (meaning those you can't treat like fry cooks at McDonald's), and the ability to sue vendors when things go wrong. Both sides have their prejudices: semi-rational hatred of all Microsoft products on the one hand and unquestioning reliance on Microsoft marketing materials on the other.
Until recently, there was an uneasy balance of power between the two which varied by location and industry but basically resulted in the suits getting their way. In business circles, the statement "[Authority figure] says NT is the industry standard; besides, Microsoft's stock is soaring while [competitor]'s stock is sinking" was the unanswerable trump card which ended all discussion. However, this smug acceptance of the Microsoft party line is being challenged more frequently of late, particularly by the Silicon Valley types who make money by spotting the waves of the future.
Here's an object lesson: I know a startup full of genius hackers that decided to develop their application on a 100% Microsoft platform -- NT, Visual Basic, the whole nine yards. They did this despite the fact that all their programmers were true artistes on *nix and Mac who had previously scorned Windows, and furthermore that all of them had been early users of the Web. They were definitely following a strict client-server model as late as the end of 1998, when their CEO told me "the Web isn't a legitimate business tool, therefore our customers won't use it". Within weeks of this conversation, every enterprise software vendor -- including the leader in this startup's market -- announced the death of client-server and a mass rush to get their apps on the Web. So much for MBA herdthink.
I can't believe this attitude wasn't partly engendered or reinforced by the fact that Microsoft has been (for understandable reasons) so dependent on its market share and so reluctant to see the Web as a legitimate tool. Their brand of Follow the Leader works because of the huge anxiety engendered by technical change. Everyone's looking for something solid to hold onto, one thing that will continue to be true no matter what. For some, it's good technology. For others, it's market dominance. But what does that phrase even mean today? Maybe it designates the OS with the most desktops; but maybe it means that the most successful and innovative companies in every category are running some flavor of Unix. Small startups in particular need to think hard about the growing risks of hitching a ride on the Redmond express. If Ballmer and company guess wrong about something, they've still got billions of bucks in the bank. If you go along with their wrong guess, game over.
Consequences
For all these reasons, we decided to do our alpha on Linux instead of NT. Now Linux is part of our global business strategy -- not because of any ideological issues we might have, but because it works. From a Linux/Java base, it's easy to port to other platforms like the other Unices that dominate the server market, if necessary. NT is on the way out and W2K seems to be stuck in the birth canal, but developers can be comforted by the thought that *nix has endured a lot already and will probably be around for a while longer.
Now I don't know whether my particular startup will get off the ground or not -- that was just a convenient illustration. My point is to suggest that every "two geeks in a garage" team now must discuss whether Linux (or some other *nix, and/or other Open Source solutions) are right for them. The arguments in favor are too overwhelming, the cost of choosing wrong too great.
A modest proposal
If Microsoft truly wants to focus on customer service, developers, and the Internet, they've gotta come up with some new marketing ideas which take cognizance of the unusual value of the small developer market. This entails reversing one of the fundamental tenets on which the company was built, which is that mass beats class every time. In years past, it made sense to cater to the lowest common denominator while alienating the few pesky independent-minded developers -- because of the desktop monopoly, which was the city hall no one could fight -- but now developers have to be convinced it's in their interest to work native rather than go web-delivered.
So here's my humble proposal: maybe Microsoft should try to appeal to the raw startup, so more of the cool apps of the future might run on some version of Windows. If I were Steve Ballmer, I would form a small team to bring out another version of Small Business Server deliberately oriented toward the raw Internet startup. It must be built on top of a rock-solid TCP/IP layer, because everything will employ that protocol -- so fix my Proxy Server problems or forget it! Get some development tools in there -- I don't need to share a fax machine, I need to use servlets and make database queries. Move faster to figure out what new stuff independent developers want, and give it to them tout de suite. Carve out a logical upgrade path through the thicket of licenses. Microsoft shouldn't think of this SBS as a moneymaker at all, they should think of it as developer relations -- meaning it should be cheap (free for CS students -- an awful lot of the innovation is coming out of a really small number of these folks), update frequently, and go very lightly on the more annoying usage restrictions. The goal is to match most Linux distros' "instant tech startup in a box, just add connectivity and stir, appeal.
But I guess no one wants marketing advice from me, the most successful software company in the world least of all. Little software startups like us will be attracted to Linux in larger and larger numbers, while the Colossus of Redmond spends its time trying to squeeze the last drops of blood from its desktop dominance.
beginning developers? Older ones too! (Score:1)
I was a 30 year old techie who could afford, and owned, a SPARCstation at home when I switched to Linux in 1995. I had a SPARC because I wanted to have the same home and work platform. Yes, I used all the GNU stuff on SunOS even before Solaris 2.x made it an even better choice to do so.
Linux let me go back to owning a hardware platform that didn't gouge me for every little hardware extra (chech the prices for SBUS video boards etc
You don't have to be a 13-24 to see a good thing as a good thing.
-M
Free Sybase? (Score:1)
Re:reluctant VB programmer (Score:1)
1) Intellisense. It may not be perfect (or even work all the time), but it sure helps you to save time if you can't remember what exactly the name of that function was or what order it's parameters went in.
2) Edit and continue. REALLY COOL. This is something I miss when I'm using other languages (except the rare occasion when I'm back in VB
3) MSDN. This is a really great help system. Lots of documentation. It's also relatively clean -- well formatted and not hard to read. The online version (msdn.microsoft.com) is also very nice.
4) Remote debugging. Answers the problem: "It works fine on MY machine -- why doesn't it work on YOUR machine?" Granted, you only really get to use this every once in a while, but I still find it to be a really cool feature.
Now I know that Linux has some great dev tools too, but being (relatively) new to Linux, I don't know them.
Personally, I find that VC++ is a great tool for (at minimum) those features listed above.
Re:Developers are pretty important... (Score:1)
MS is running full page ads in the PC Week type magazines depicting happy future developers, pretty geeky looking guys all, winning recognition from their co-workers and happily using Office 2000 development tools.
I don't really remember such ads in the past. I do remember MS pumping up their development environments and how they made you a success, but they typically showed the developers becoming corner office denizens or Italian suit wearing consultants. They didn't used to target happy geeks.
Re:What is wrong with Sybase? (Score:2)
It's missing a few things in in its SQL functions (statistical aggregate functions in particular), but its stable and reasonably fast.
Re:The other benefit of not using canned apps. (Score:1)
Also, I rather work against an API, whether it is GTK+ or Qt, or even, yes, here it comes, the horror, I know, the WIN32 API, than trying to write my own library to talk to the hardware. How many actually write directly with Xlib?
And Open Source might be flexible enough to satisfy specialized demands of the niches, but will it attract enough developers to actually do it?
Big companies, or even small ones, can afford to give their developers the training to understand the issues in the niche. The cost of the training and development will be offset by the sale of the product and the subsequent support. Open Source, and we are really thinking of Free Software here, where the developers are left to themselves, won't have that support. Sure a company could put their developers on a training program, and then develop it, but if they then put the software in the FREE category, they would have to compete with other service companies that didn't spend the money on developer training and development.
Who do you think will be able to sell the services cheapest?
The niche marked is the marked I think, the properiatery, closed source will do much better than the open source.
Re:reluctant VB programmer "NOT SOFTCORE programme (Score:1)
My concept of a programming language is that it is only a tool.
A simple example: If I had a choice of using C++ or Visual Basic to connect to a simple Oracle database application(under Windows!) I would use Visual Basic (especially for a tight deadline).
On larger/complex applications I may choose C++.
If I had to extract text from html documents I would use Perl not C (I could use C but it would take longer to write the same thing!)
The old saying rings true - "use the right tools for the right job!"
Ok so... (Score:1)
Why bother with Win32 at all. Even if (Solaris|HP-UX|AIX|IRIX) isn't Linux, it's a lot closer to the mark than any Window pain.
-M
Re:Linux good for beginning developers (Score:2)
Actually, I think this touches on the real reason behind most of the posts here. People tend to think that the way they learned is the way things should be, and hate having to change paradigms - even when the new paradigms are better (and I'm not saying which are). We've all met FORTRAN or BASIC or assembler programmers who think OOP is for wimps, haven't we? Many of the posts here have exactly the same boorish tone, and are equally misguided.
IMO, the mistake is letting people get too comfortable with one model before exposing them to another. Give programmers both UNIX and Windoze, and maybe a third, from an early point. Let them decide which they prefer after they've had a chance to gain some perspective instead of getting them stuck in the first model they learned.
Re:Developers are pretty important... (Score:1)
Linux is not a factor here.
Anyone remember how "Visual Studio raise to power? (Score:1)
THEN, VC++ was released to ride on the VB hype. It turned out that the word "Visual" wasn't meant as literally. But, a lot of copy were bought before the fact was well-known.
So, it is the way VC++ thus Visual Studio became popular. In itself they are nothing fancy, but people just got used to them.
The closest Linux "equivalent" to it in terms of mode-of-operation and look-and-feel is KDevelop.
I guess it was done deliberately, to make the transition easier for Windows programmers.
The point? Visual Studio may not be something as powerful as emacs, but it is what most developers use everyday and it is got used to by people.
Re:Developers are pretty important... (Score:1)
>(and you pay again for development software).
Wrong. I can write Windows code with mingw32 and wxWindows without paying a cent for the development software...just that nobody takes development tools not made by MS seriously.
(also since mingw32 is a port of gcc it is bound to progress slower than the *n[iu]x versions...)
>Linux delivers an operating system and
>development software to every user.
Yes.
>Which approach is going to encourage more
>developers in the long run?
It depends more on the OS than the development tools because they both have free tools.
Oh wait. Windows's got a commercial IDE. Maybe some equivalent for *n[iu]x helps...
Here's an idea... (Score:1)
Suppose you make a query that you know will result in an empty result, then store the value. You could then try to compare to that value to see if you've got an empty result.
Re:Uh-huh. (Score:2)
It's certainly a lot easier than raw X. Granted, I've never used raw X, but I've looked at a few books and it seems pretty tough.
One of the things that makes Windows hard is that Microsoft, in an effort to make it easy, generates programs for you with all kinds of incomprehensible junk. It shouldn't take 300 lines of code to do "Hello, world". GTK brings me back to the appealing simplicity of yore, and that makes me really like it.
On the other hand, a lot of direct user interface programming has been replaced with software that spits out HTML for a browser - and I, for one, applaud that trend.
D
----
Re:Uh-huh. (Score:1)
Yes, I've done this, and you are completely correct. Every one of the Windows API functions has 10+ parameters, with poor documentation. They also tend to give you little indication of what's wrong when they fail. Then, of course, Microsoft provides "easier" wrapper class for these things, which tend to (a) restrict you into doing things a very particular way and (b) be even more cryptic in error conditions.
And that's nothing compared to their database technologies. About ten years ago, I did some database work using embedded SQL under OS/2 and found it not particularly hard to deal with. Today, I'm trying to deal with the "new, improved" Microsoft database technology ("OLE-DB") and finding it incredibly hard to deal do anything. It took me a week to figure out how to insert a goddamn record.
(It doesn't help that Microsoft has this tendency to supply cryptic documentation and provide lots of 10,000 line examples of doing reall fancy stuff using everything but the kitchen sink, and none of what would really be useful, which is a set of thirty line examples showing how to do the basics.)
Re:Developers are pretty important... (Score:1)
(Once they move here, they stop being cheap, which is why the "foreign programmer" boogie-man isn't much to worry about.)
Re:Developers are pretty important... (Score:1)
Re:reluctant VB programmer (Score:1)
Agreed. This is massively cool.
> 2) Edit and continue.
You can also do that with PythonWin and (IIRC) Tcl. To bad Tk support in Windows is buggy (YMMV).
> 3) MSDN
Whoa, now. MSDN is the most convoluted, useless piece of junk that Microsoft has ever produced (worse that J++, even). I mean, it's nice if you want to learn the basics of a language, but for hardcore things (like pretending VB is VC++) it just doesn't cut it. That, and it's slow. It's slower to start up the help files in VB than it is to start VB.
I must say that my experience with C++ (or VC++) is lacking, however, I would be more than willing to trade everything positive about Visual Studio for my handy dandy text editor and compiler/linker/interpreter of choice.
As for another post earlier about doing DB stuff in VB, it's simple. JUST USE DAO! That's it. Don't try to learn all of the cruft MS sends your way. It goes like this:
-- Create a workspace
-- Create a database
-- Create a recordset
-- Pull an index of the database
-- Futz with it as needed
-- INSERT INTO...
-- DB.Commit()
-- Cleanup
This is why I use DAO for everything that I can. Anything else gets done in Python, JPython, or PHP4.0(beta 2 woohoo!) and javascript.
To respond to the original poster concerning sockets, I created a client-server logging tool in VB using a WinSock control array. Works great until it gets more than about 30 simultaneous connections. The overhead brings the program to a halt. Lesson? Use Java or JPython instead.
Anyhoo, sorry for the long post. I just needed to get it off of my chest.
(longing for the day when I can uninstall VS6.0 forever)
Re:Think of this before bashing VB (Score:2)
* Two other things in it's favour, any monkey can learn it, and the support is great. Both reducing the cost of maintenance
On the surface, that sounds just rosy. Quick & dirty, just get the job done, right?!?
Wrong. Where I've work, things have been done "quick & dirty" in VB. Six months later, as matters scale, suddenly those easy and perfect solutions become a nightmare to support, change, or extend. Management has now sworn off VB. I have the pleasure of producing solutions in Python.
Why? Because as a scripting langauge, it's relatively quick to develop. While VB may be faster in the short-run, Python has the strength of being a real programming language which has marked similarities to the proven principles behind C/C++. As a pure language, not some GUI-bastard, it also allows a person to see everything the program does in a series of text files, or even hard-copy. Code is better than pretty little gawgads which abstract things so "any monkey can do it". Basically, it comes down to the old principal of "You can pay now, or you can pay later."
Don't forget, we're at the begining of the Information Age, not the end. Things will continue to change, and scale, and because of that, development tools need to be easy to maintain and support in the long run. Thus smart business will use UNIX/Linux solutions, which have the advantage of 30 years of Academic thoughtful design and Industrial trial-by-fire refining.
Time will do the Darwin on MS tools, it's just a matter of when.
Re:The Chicken and the Egg? (Score:2)
However, there is hope in my view, mainly due to the increasing prevailance of web applications, where what runs the server really doesn't matter. I'm working right now on a project through my consulting firm that uses Linux/mySQL as a back-end to churn out web pages that can be viewed on any browser or platform. Those jobs are out there. In my case, one of the problems was to convince my boss in the consulting firm that this was viable technology. But he's heard so much about Linux now that the barriers appear to be falling.
D
----
Re:Uh-huh. (Score:2)
I knew from the this project was going to be a death march as soon as they said, "We'd like to do this under Windows." Uhhh...OK. I had never even made a GUI app before then, let alone coded for windows.
My impression with MFC was that it was a good idea, but just an extremely kludged hack. (Inconsistancies galore!)
I had to scrap my code about 8 times writing that thing. I couldn't decide which I hated more, the MFC, or VC++. They both suck ass. (I will say that autogeneration of code for a GUI app is good thing. Afterall it's what 200+ lines of code just to get a blank window? And of course no one wants to design dialog boxes with a text editor ("Uhh the OK button is too close to the CANCEL button. *edit* *recompile* *run* Uhh still too close...."))
Now VC++ is supposed to let you say, "Insert TaskBar" and it will stick the code in to do that for you. Nice that it does that, but you really need to know what it's doing. Having 50 lines of mystery code appear isn't a good thing. Of course I wanted to add something that I knew you could do (a DialogBar) but you couldn't simply have MFC to add it for you. I had to write code (no problem yet), outside the VC++ autogeneration enviroment and import in the classes. VC++ didn't like that. It would either not see the class, or see the class and think it had only a constructor and a destructor. If VC++ didn't import the class properly, I couldn't compile it.
Until that day, I thought that if you made a deal with the Devil to get a job as a software engineer, you'd be coding in Cobol. (Afterall the Devil always gives you what you want, just in an extremely perverted fashion.) Then I saw the light, the Devil's software enviorment is MFC and VC++.
I will consider my career a success if I never have to deal with windows again.
Frickin' Journalists. (Score:2)
It's a BASIC interpreter, NOT a BASIC compiler. Even Bill Gates wouldn't make that mistake.
It doesn't matter whether a new phenomenon is 'big' or 'small', as long as it can stay agile and get fresh ideas. Linux has a big advantage here due to its development model. If the next two great programmers want to hack and rewrite it, they can feel free to do so, and send patches.
Once we get to page two, we finally get to the real reason: NT either doesn't work, or is too expensive!
NT: no, but you could give us more money instead.
Linux: would you like fries with that? ketchup?
Now, I could do without the journalist speak here. There's a good message buried in some of this Katz-ian drivel, which goes something like this: people without lots of cash, and people concerned with quality will find a free, UNIX-like solution. People with a lot of money who believe sales reps will use a Microsoft solution. Innovative startups don't have a lot of money. Ergo, the future is Linux, *BSD, or something, with Linux being the most popular at the moment.
However, we could just post a link to NT vs. Linux every week and be done with that.
An interesting point could have been: since Microsoft doesn't write good code, why don't they just steal code from *BSD? It's free, it's legal, and the advertising clause is gone. Probably they wouldn't because of their arrogance, and MacOS X has a head start on them for stealing from BSD.
---
pb Reply rather than vaguely moderate me.
ho hum. (Score:2)
So you can tell I'm already biased.
But without screaming about how much better microsoft's development environment is to linux's I'll admit I don't know jack about linux development. The only time I ever wrote an app is on a SCO/UNIX box a few years back. It was pure ANSI/C++; all it did was r/w to ONE file. And took a few parameters. Although I do know vi and have wrote some small test crap in it I opted for VC++ IDE.
Here's what I like about developing with Microsoft tech:
- nice IDE's. the VB/VC/InterDev IDE is assume. Integrated debugging, initi-pop-up-thingy. Class tree thing. And of course pretty colors for key words
- VB, great for prototype's, testing COM objects, and little crappy apps.
- ASP brain dead web development, super easy and has COM automation support
- COM, I'm in love with COM. Write reusable distributed black box's in any language. (and soon coming to linux guys
- Documentation [BIG POINT]: I almost always know where to find documentation, (1) msdn, (2) dejanews, (3) msdn online. Even if it's not that good, I can figure it out with what I find. And after enough digging, I find what I need to know 95% of the time.
And now what I DON'T like
- MFC: I like to call MFC the VB for C++. It's REALLY REALLY good for making ONE type of app. The big mololithic MDI app with file/open/save and edit/paste/ yadda yadda. Anyway. Other then that. It stinks. it spoils you from knowing the Win32 API in SOME parts, then in others it's like "welcome to the registry"
- Win32 API: ehh... it's OK. I mean I have some sympathy for microsoft. They have to make this thing backwards compatible with crap from the 1980's. but like many have you said there's a million ways to do anything, and each way you have to choose from passing 15,000,000 parameters or 4 parameters with a structure with 15,00,000 parameters.
- C++ type InSaniTy!. Bstr, BSTR, string, Cstring, OLECHAR, unicode, ANSI, or multibyte? CcomPtr, IdispatchPtr, FAR PASCAL* etc.. etc... C++ is partly to blam here. But it would be nice if it didn't take me 2 days to figure out how to convert a DB_DATETIME to a DATE type (it really did take that long).
- Million ways to do anything: lots of competition within microsoft's own madness. Lots and lots and lots of ways to do anything. What's really bad is you pick up a book and it shows you how to say, sink event's from IwebBrowser2, then you pick up another book and they do it a totally different way. It makes it hard to know which is the "best" way, or even the "approved, modern" way. I guess if you've actually mastered this stuff you can decide, but for people like me who learn by copying stuff our of books and messing around with it, it sucks.
So what id like to hear is how is linux better, the good points and the bad. From my impression (ignorant as it is). Developing in Linux means you need to know basic POSIX stuff. Know how to compile stuff in GNU C++. And know what's up with glib, libc,(I think that's what there called) or gdk, or tcl/tk, or perl, or? I'm just through stuff out. How would linux make me development a smoother more pain free.
I've seen some gdk stuff and it didn't look much better then Win32, still wasn't C++ OOP. Still had funny pointers and type's. honestly it looks like the same good and bad, except that there isn't one big central place to get everything from. No "way to do this". Just lots of stuff thrown in from everyone and there dog.
-Jon
Re:To all the Visual Basic haters (Score:2)
Sure I run Linux at home (and work, although it's HIGHLY unofficial), but when I have a customer needing an app to automagicly pull reports for 6 departments from 3 informix databases, put the reports in html and printed postscript, what development tool do you think this college educated C programmer uses? Visual Basic 6.0
Wanna dis it as convoluted, stupid and "the tool of Monkey programmers" Send me a friggin email...
Those haters forget who the hell pays the bills. Linux software development doesn't keep a roof over my kids head. Those haters (you know who you are) have never had to freakin' program for a living in the real world of corporate programmers. According to a 1996 (a bit dated) Symantec survey 2/3's of all programmers work developing inhouse apps for corporations. If I've got a tight deadline and a customer wanting a clean, userfriendly package with simple interface you DON'T do it in a console mode C/C++ app. You write you app in the quickest RAD tool avaliable. Currently that would be Visual Studio, Delphi, Powerbuilder, or on the Unix side possibly Informix 4GL. "Real Programmers" ie: those who sit at a screen pumping out code for 10 hours a day use the right tool for the right job, OS/Development holy wars matter little, You don't tell the requestor "sorry I can't make that deadline because I don't like Winbloz" You get the job done. Does that mean we are "simple minded" "Monkey" programmers" Hell no.
Wanting to disrespect corporate programmers using Windows tools as somehow "inferior" to *NIX programmers makes VERY little sense. We corporate programmers have had to master (and use daily) ADO/DAO/RDO (database) OLE/OLE Automation, ActiveX Controls, ActiveX DLL's, ActiveX EXE's (server and desktop side), MAPI, and the Win32 API's. The same simpletons disrespecting Windows Programmers as "Monkeys" at the same time seem to bitch about how complex the Win32 API's or Data Objects are. There is LITTLE simple about writting serious business apps in Windows. I would suggest a tour through a real windows app before dismissing Windows Programmers as "simple".
On a further note. Instead of bitching about all the VB apps out there, give us a TRUE RAD tool in Linux that can rival the power and ease of use of Delphi/Visual Studio/Power Builder and maybe, just maybe you will not have to bitch about them.
I apologize for the intensity of my response, but I've about had it with kids bitching about Windows being soooo simple in one breath and bitching that they can't understand the API's in the next, and finishing with the usual "why don't you just write apps in *NIX" dribble that doesn't help and only draws attention away from real issue of how to get more developers on *NIX.
Re:Developers are pretty important... (Score:2)
(Though in truth, nobody who programs solely in VB will know enough of the Windows API to pass all of the certification requirements.)
Re:Use ADO, not OLEDB (Score:2)