Where Do You Go After Visual Basic? 363
"BlackAdder supports a Python-Qt synthesis that is very attractive as both languages have Open Source verisons. Their IDE costs only $250, which is doubly attractive.
Kylix is apparently a full featured IDE based on Borland's many years of experience with Delphi. However, one has to buy both Kylix ($199) and Delphi 6 ($999) and the language is proprietary.
Komodo suffers from the lack of a widget/forms set (as far as I can tell). However, their IDE supports 3 languages right now and will support more in the future. The $295 per user price is also attractive, as is the large knowledge base of advice and code snippets."
Are there other decent RAD packages out there for Unix systems or is this pretty much the cream of the crop?
Java cross-platform IDEs (Score:2)
Re:Kylix (Score:2)
(yeah, sorry, I know
---
Re:Kylix (Score:2)
There are certainly pros and cons, as do all things. The stability of the IDE is somewhat disappointing -- I've crashed it several times already. The IDE is a bit on the slow side (but the compiler and the apps run quickly). The IDE's problems are probably due to the fact that it runs under wineserver, which was IMHO a sad design decision.
It is easy to learn and use though. I'm happy to have a true visual design environment. The debugger is easy to use and powerful, although when I tried to browse a complicated object it said "Not enough memory". Yeah right -- I have 256MB, most of which was free.
I wanted to write a DB app, but its MySQL support is limited to 3.22, which doesn't do me any good -- I will not and cannot downgrade. Hopefully they'll upgrade that and write a Postgres driver soon.
And I have mixed feelings about writing open source software with it. I guess it's fine for some things -- for instance non-essential things that will be handy for some people. But any essential component of a free system should be written with a genuinely Free compiler.
Despite its flaws, it is without a doubt the easiest way to create end-user GUI apps for Linux. It's a good first attempt, but Borland definitely needs to take its time and release a higher quality second version.
---
Re:Object Pascal is not proprietary (Score:2)
---
Re:Are you doing a database app? Use Kylix (Score:2)
---
Price of Delphi -- competitive upgrade? (Score:2)
Also, D5 is *not* as compatible with Kylix as D6 is. D6 brings the CLX to 'Doze.
---
Re:Kylix (Score:2)
Then how do you explain THIS?
Do you mind telling me why? You want to use something that's horrible at optimising code like gcc?
For one thing, gcc is improving quite dramatically. But yes, any *essential* system component at least needs to compile with a Free compiler, partly (mainly?) for philosophical reasons. It's OK if it also compiles with a closed source compiler that generates better object code. But the benefits of Open Source extend to the compiler, and not being able to fix a bug in the compiler that causes one of your Free programs to misbehave would be putting Free Software at the mercy of a proprietary corporation. Not good.
---
Re:Kylix (Score:2)
Like I said, I think Kylix is a great tool for a lot of things. Probably the best tool for a lot of things. I'll use it where it makes sense. But not all code generated by gcc is particularly bad, and the ability to have an open source compiler compile essential system components is pretty important. IMHO anyway.
---
XEmacs (Score:2)
Gideon/KDevelop (Score:4)
It supports Java, Perl, Python, Php, c, and c++. Personally I think the python support looks especially interesting.
RikardDump the IDE, keep the form designer, use python (Score:2)
Furthermore, glade-designed interfaces can be used not only in python but C, C++, Ada, Perl, Pascal, Scheme and probably quite a few other languages as well.
Syntax highlighting, auto-complete and an object browser are all available at an editor near you -- and emacs python-mode is fantastic.
Trust me -- spend a week or so working with one of these solutions; you'll find that you just flat out don't need the IDE, and that (in fact) the flexibility that a mix-and-match approach gives you is worth far more.
Don't learn an IDE... (Score:2)
Learn C first, then move on to Java. Then choose your IDE.
Unless you have seen the machinery and worked between the wheels and pistons, you cannot expect to get a clue how the system really works on the inside, and which approaches to debugging make sense. Only after such an experience, you'll be able to choose a proper environment for yourself, and be free to leave it, should it become necessary in the process of coding or debugging.
© Copyright 2000 Kristian Köhntopp [koehntopp.de]
All rights reserved.
About a hundred IDEs / RAD tools / GUI builders (Score:2)
You want choices of IDE development environments? I've catalogued about a hundred of them [linuxmafia.com] for Linux. Mostly as an overkill counterargument for when I hear "There aren't any IDEs for Linux".
Oddly enough, I stopped hearing that bit of FUD about a year ago, about the time I added entry #40.
Rick Moenrick@linuxmafia.com
Re:Do you want a language, or an IDE? (Score:5)
No, it's the most efficient and intuitive method of rapid user interface development. There is quite a big difference. User interface isn't everything. No matter how easily you can lay out your interface, you still have to write code to make it do something useful. That's where the language comes in, see. An IDE does not have to restrict you to only one language, and some don't.
The IDE is not the language, but I will grant you that for some people who mainly write interfaces, the choice of IDE may outweigh the choice of language.
Facing the issues of Visual BASIC (Score:2)
It depends on what you've been doing with VB. VB's strength has always been it's GUI RAD. However in recent years it's also become an incredibly adept language for writing middle-tier business objects.
If you've doing the middle-tier stuff, then you may wish to look at Java.
However, if you have been doing the GUI stuff. You won't find anything better. Java really does not work well for UI design. I suppose you could look at Delphi, as you suggested.
However, if what you're really just looking for is a "Real" language which eliminates all the inconcistencies and goofy things about Visual BASIC. Microsoft will be releasing VB.Net here in the next year. The Beta2 preview should be out by the end of the month, and you can start looking at it now with Beta1.
I went to a prestentation by Rocky Lohtka(author of several books including one on VB.Net) who explained many of the differences. I was very impressed with how much of old VB they are throwing away in favor of doing it the right way. I know some old time VB people are mad, but I've never much cared for the language, so.
Although personally I'm looking into C# myself, as I have more of a C background.
It all depends on what one is looking for. If it's your goal to go into the Linux world, good luck. If it's your goal to just become a more efficient and more capable programmer,
Re:C# on Linux will be Best for You (Score:2)
As part of the ECMA standardization, there will be a reference implementation for C# which will be available and most likely run on Linux.
But it's doubtful that it'll be full featured. i.e. just the base classes will be implemented.
Re:Visual Basic "Developer"? (Score:2)
As much as I dislike VB, I dislike PERL even more.
Re:Going from VB to a high level Language (Score:2)
Moving from VB to C/C++ would not be regarded as a move to a high level language, but rather a lower level language.
I agree with your comment about being frustrated with VB's lack of functionality. This is addressed in Visual Studio.NET.
Re:Don't use an IDE (Score:2)
Otherwise, the Intellisense and ability to easily step through the code with breakpoints, watches, etc. makes the IDE much much more powerful than anything you will do with Emacs.
I don't think the benefits of an IDE can necessarily be ignored. For instance in Visual Studio.NET you can place comments 'TODO: blah' and they show up in a Task list within the IDE.
I will grant you that sometimes those editor capabilities, or lack thereof, can be annoying.
Re:Are you doing a database app? Use Kylix (Score:2)
First of all VB6 is compiled code.
Writing database applications using ADO recordsets is incredibly easy.
I'm not at all certain why you are trying to compare VB with Access.
Re:Facing the issues of Visual BASIC (Score:2)
I have a number of friends who used to be Delphi programmers. They all admit that since VB6 there has been very little to differentiate Delphi.
Sorry!
Re:Visual Basic "Developer"? (Score:2)
PERL is good for what it was designed for, true.
But the same is just as true for Visual BASIC.
But trying to say any of these languages is a good all-purpose language, or that any one of them is a more "real" language than the other is ridiculous.
Re:What I did: (Score:2)
Re:What I did: (Score:2)
As for programming I did things the opposite way... I first learned how to program in Pascal then C then C++... then I grudgingly learned access basic... I still yern for Turbo Pascal 5.5 and Turbo C 1.0.. now those were the days! I still love that editor!
Re:Go with Python (Score:2)
--
Nah, Zope (Score:2)
None of the Above (Score:4)
But as others have said, if VB is all you know, C++ or Java are much more useful (read: employment-getting) languages to get down first, and they both give you syntax fundamentals that will seem very familiar if you proceed from, say, C++ to PHP or from Java to Smalltalk or Python. This is not to say Python isn't idely used, but rather that an organization will feel more comfortable bringing on a Java programmer and asking her to learn Python than the other way around.
What IDE you use is more a matter of personal preference. Unlike VB and Kylix/Delphi, the C-langauges and Java exist outside the context of a dominant IDE. A damn fine (and widely used) IDE you'll feel right at home with for C/C++ is KDevelop--with a form painter, event wizards, code completion, properties inspectors and all. It's also free, and better in many regards than some of the commercial IDEs out there in the Unix world. For Java, there are too many IDEs to mention, with the base editions either free or in that under-$300 price range you seem to be targeting.
Focus on languages and APIs, not tools. If you can write C++ in KDevelop, it'll take you a few hours to get up to full speed writing C++ with CodeWarrior, the Cygnus tools, Code Crusader or for that matter a plain text editor and command-line build tools (which is a very useful foundational skill, by the way, and one you should acquire if you're serious about moving to the Unix/Linux world).
As for APIs, picking up either GTK/GNOME or Qt/KDE for graphical applications is a decent idea if you're staying on the traditional desktop or client-server side of things. On the (web-)server side, having something lean like PHP or server-side Perl (not so much CGI as mod_perl and its cousins) in your arsenal is more or less comparable to knowing VBScript ASP. For heavier lifting, J2EE is the dominant way to go these days, and yes, there are free JSP/servlet engines and even complete J2EE application servers. Apart from a smattering of bundled SDKs and different tools, writing apps for the free JBoss is the same as writing apps for Weblogic, Websphere, iPlanet's appserver, Oracle's appserver, Sybase's, and so on. And J2EE code deployed on Linux doesn't change on Solaris, AIX or Windows 2000, or on an AS/400 or on a System/390.
How about wxPython/wxWindows.. (Score:2)
From the website:
wxWindows gives you a single, easy-to-use API for writing GUI applications on multiple platforms. Link with the appropriate library for your platform (Windows/Unix/Mac) and compiler (almost any popular C++ compiler), and your application will adopt the look and feel appropriate to that platform. On top of great GUI functionality, wxWindows gives you: online help, network programming, streams, clipboard and drag and drop, multithreading, image loading and saving in a variety of popular formats, database support, HTML viewing and printing, and much much more.
wxPython is the same thing with Python bindings.
You're more than able to do all of this in your favorite text editor like Vim or Emacs, but since you're into fancy IDE's, they sell whDesigner
Here's the link:
The pricing is quite reasonable:
Product Price
Student licence US$ 19
Single-user licence US$ 89
10-user licence US$ 299
Oh, and they're working on Perl bindings too:http://wxperl.sourceforge.net/
I'll second that, (Score:2)
Linux has "VB" (Score:2)
http://www.gnome.org/gb [gnome.org]
Re:Java - JBuilder, VisualAge, Forte (Score:2)
There happens to be an open source refactoring tool, called Transmogrify, that has been released.
Details are available at transmogrify.sourceforge.net [sourceforge.net]
Why not Java? (Score:3)
If you are looking for a cross platform language, why not go with one of the Java IDEs? Cross platform supposedly is the primary goal of Java. Although vi is my IDE, you might like something like JBuilder.
Java (Score:2)
Where I am working we have VB as well and I have found it to be a rather nice and easy language, it lacks lots. VB was taken from Basic, which was actually a programming language that was to be used as a learning language, like Pascal. B = Beginner (Beginner Allpurpose Symbolic Insctruction Code). It was never really intended to do anything effective, but M$ has abused that and made it more of a M$ proprietary standard.
My suggestion is that if you really want to porogram effectively you'll actually learn to program in another language. I think that C++ is good for GUI's or C. The problem I have had with Python is that I have had is that sometimes it works sometimes it does not. Perl / Tk and Tcl can get to be to slow when you have lots of widgets on a window. IF yu have a simple GUI then you are fine, but when you start to put many widgets on a window then you have slowness problems and performance problems. These can be worse than Java performance.
The truth is that I am actually somewhat against IDE's as they usually create BAD bloated and unreadable code.
I don't want a lot, I just want it all!
Flame away, I have a hose!
Re:Beginner Allpurpose Symbolic Insctruction Code (Score:2)
This is true, so they can start with Java. It is also OOP, and it is actually better than VB as it runs just about anywhere.
I don't want a lot, I just want it all!
Flame away, I have a hose!
Re:Slashdot grows up !! ?? (Score:2)
alternatives to MS tools. Used to be you could
have your choice of vi or emacs. And GUI meant
Motif. And you needed to learn X quirks. And...
Now there are IDEs which hide a lot of complexity
from you, so MS bashing is no longer needed to hide the lack of good RAD tools.
RAD tools, Office suites, desktop environments,
visual config tools and others are growing up
on UNIX/Linux so expect less MS bashing and more
of: why use proprietary stuff when free stuff is
better.
Re:Language or IDE? (Score:2)
Use C for the right task, but LEARN C before you become a serious programmer. Understanding pointers (and memory allocation/deallocation), low-level I/O, allocation on the stack vs. the heap, and all the other headaches that C forces on you helps you to really understand what is going on behind the curtain presented by higher-level languages. It also helps you to appreciate what the higher level languages do for you.
I'd suggest that people learn how to write assembly, too, but that seems to be beyond most people's skill sets. The more you understand about what is REALLY going on, the better a programmer you will be. C, as a high-level assembly language, is a good compromise.
I'd also suggest that a good course in algorithms and/or discrete math should also be on the menu. Programming languages are just syntax. Understanding how the parts should all fit together (and why one way is better than another) is much more important.
Once you have the theory down, the practice is next. Software engineering is more than just writing code; it's writing maintainable code. Most programmers love showing off how clever they are. Their programs, however, suck. For any non-trivial project, clever tricks are a bad idea. Leave the hacks for the Obsfuscated C contests...
Once you have all of this down, it's time to pick a programming language and IDE. Remember: wax on, wax off, wax on, wax off...
-jon
Re:A more traditional answer... (Score:2)
What does "Power" mean? All of these languages are Turing-complete; they all have exactly the same expressive power (which is the same as a Turing Machine. If you don't know what a Turing Machine is, you aren't qualified to have an opinion on this topic.).
Java is a great language; I make my living at it. But C is the first language any moderately competent programmer should learn. After you understand C, you should then take courses on theory and software engineering. Then pick a language and IDE.
-jon
Re:who isn't qualified? (Score:2)
Thank you; I like cookies.
I mean, fuck, you know that a 'Turing complete' language doesn't even need to have arrays, or named variables or pointers? Try programming without those for a while and come back and tell us how no languages is any more 'powerful' then any other.
Been there, done that. It's called assembly language. Anyone who has a CS degree worth a fuck should be able to handle it. Most CS degrees, though, are crap. Most programmers are even worse.
Since you have a poor grasp of English, let me restate what I wrote. No computer language is any more powerful than any other. Sure, high-level languages constructs which make bookkeeping (keeping track of variables, memory, start/endpoints of code fragments, calculating jumps to code fragments, etc.) easier. But that's all it is; bookkeeping. It makes programming more convenient; nothing more. Convenience isn't power. It's helpful, don't get me wrong, but that's about it.
-jon
Re:Why don't you just suggest assembly? (Score:2)
Because, if you bothered to read the next paragraph in my post, C is a good compromise. I do think people should learn assembly. Read what you criticize before you open your trap. It makes you seem like less of an idiot.
Trying to Learn C won't do him any good other then painfully making leaky programs.
Everyone's first C programs leak memory. That's the nature of learning how to program. Over time, you get better. It's called learning. Those of us with frontal lobes are capable of it.
-jon
Maybe he's too concerned with the IDE? (Score:2)
Without knowing *anything* about what he intends to do with his new language choice, I humbly suggest that Josh take a look at perl and vi. Using perl will give him a taste of Unix scipting, and perl is very multipurpose (perl is arugably the VB of the Linux world). Perl has the added bonus of being easy to learn, so spinning up from VB won't be as hard as with Java or C (no flamewars intended). Learning and using vi will allow him to get to know an editor he can use at a command prompt, which practically is a required skill for a Unix user (after all, you may not always have X, so only getting to know a GUI does you a great disservice). I'd even recommend emacs, which has some great IDE development capabilities.
After he's got perl and vi under his belt, he can go take a look at an X-based GUI. But I still say that he should examine his programmatic requirements before his aesthetic requirements. Again, this is only a humble suggestion based solely on my experiences. YMMV, etc, etc.
-B
Java - JBuilder, VisualAge, Forte (Score:3)
Not Really Incorrect (Score:2)
I'd gotten really good at DAO. I'd memorized its functions enough to be able to dictate it to someone over the phone. I didn't appreciate having someone else tell me that it wasn't recommended anymore. I didn't want to feel like I was being shepherded along an upgrade path. If I was going to write code, shouldn't I want to write programs that weren't going to be thrown away?
Access was great. I learned to program using it. I made a lot of money being good at it, but yet, there is something flawed in it. It limits you unnecessarily. The database/app bundle concept is just wrong.
Let me explain:
I have a student that I am teaching beginning programming to - We started writing PERL on NT, using ODBC to talk to an Access database that he'd created. Between lessons, he started having trouble with the database, so I told him to mail it to me. Problem was, he was using Japanese Access 2000, I was on English 97. S.O.L... The next lesson, I installed MySQL and MyODBC and we haven't looked back. He's now comfortable writing SQL on a command line, be it Linux or Windows. I can log in remotely and check his tables. Sure, it was a little more difficult for him to grasp at first, but that went away after about a week. (We found a great front end for MySQL - http://dbtools.vila.bol.com.br/ )
Now, he can dump all of the create and insert statements into a plain text file and mail that to me. With very little editing, we could 'upsize' to Oracle or Sybase.
Plus, it's FAST.
But the biggest thing is the feeling that we don't have some marketing department somewhere deciding how we should be writing our code.
Imagine that you wrote a great application in Access 2.0 - that was what, 6 years ago? Try to sell it to a client. Try to make it run. It's not something you would really think of doing, because you've upgraded so far beyond 2.0 - Now imagine that you wrote a great program in perl, 6 years ago. (Or 16 years ago - When did Larry write it?) Chances are, it would still run now, if it ran then.
I don't want what I write now to be obsolete in 5 years.
I want to be able to run it on the platform of my choosing. Linux, Windows, whatever.
Plus, It's free. All of it.
I sometimes kid about MS requiring all of its developers to upgrade to 'ActiveIF' technology - No more writing complicated 'If..Then..Else' statements - Just drop in a few ActiveIF controls. Just be sure you have licenses for each occurrence...
How far off the mark is that, really?
Cheers,
Jim in Tokyo
MMDC.NET [mmdc.net]
What I did: (Score:5)
With the last 'upgrade' of Access, I found some of the methods that I'd come to rely on disabled by default. Not a huge deal, but a client's last minute change caused me to miss a deadline. ("Oh, we need it in Access 2K - not 97. " Should have been simple, but all of the DAO stuff I had written failed. The reason is still beyond me. )
I felt betrayed by MS - I'd gone and learned what they said to learn and then they changed the rules, so that they could push their latest and greatest version.
So I switched to Perl.
Not a big learning curve, if you knew what you were doing in VB. Interesting enough to get me excited about writing code again. (Yes, VB can be a lot like writing code...)
It took me a while to figure it out.
I took some working scripts and made them better.
But I missed clicking a button to see if it would 'compile'.
I missed the IDE I had in VB. typing 'object' + '.' brought up a list of the properties and methods for the object.
Yet still, I was productive; It was fun again.
Now I'm taking it as a challenge to write my perl using vi. Some of the fun comes from *not* using and IDE.
Instead of a help file, I have the O'Reilly CD bookshelf bookmarked on my HD. Instead of a 'run' button, I have 'perl -w'.
I started writing CGI scripts that used ODBC to talk to SQL Server. (ActiveState Perl on NT.)
At my company, I pushed the idea of intranetting what apps we could - It cut down on all of the support that we had to do installing VB apps on every desktop. (A surprising amount of work.)
I began to really see the the beauty of using open source tools.
I was able to keep my reference books more than a year or two. (My current favorite read is "Unix Power Tools" - my copy is from 1993 - Still lots of useful stuff in there.)
I saw the beauty of writing programs that didn't need users clicking buttons to run. (Try making your typical VB app run without a user sitting there poking the screen.)
My advice? Pick a language and get good at it. Pick something marketable, yet pick something open. Pick something you feel you can learn. Then toss yourself into it.
Get excited again.
Do really cool stuff.
Good luck and let us know how it goes!
Cheers,
Jim in Tokyo
MMDC.NET [mmdc.net]
Learn a real language (Score:3)
Your first step on the road to recovery is to learn a real programming language. And learn how to program in that language without the benefit of drag-n-drop and plug-n-play.
My recommendation is C++. Other people will call me a heretic and say it's evil. No matter. You get to learn C along the path to learning C++, so you can always stop along the way if you feel yourself slowly being twisted into an agent of evil. Other great languages are Python and Perl. Java is a cool language as well.
But no matter what you choose, learn to program first. Nothing else matters.
A more traditional answer... (Score:2)
It is *very* object oriented (which not all C++ toolkits are), and well documented with several nice high level tools (Qt Designer, etc). You *will* have to find an IDE for project management, I believe (correct me if I'm wrong, and somebody knows better!).
Quite frankly, if you only really know VB, C++ will introduce you to a good spot smack dab in the middle of the "C family" of languages: C, C++, Java, Perl, PHP, and many many more.
--
Evan
Re:Don't use an IDE (Score:2)
Re:Why don't you just suggest assembly? (Score:2)
Language or IDE? (Score:3)
Real RAD (Score:4)
The other tools claim to be "RAD," but they're really just IDEs + GUI form designers. With Kylix/Delphi on the other hand, you can visually design very sophisticated data bindings, network connections, and so on. Borland's JBuilder Pro and Enterprise (not cheap) IDE's are equally cool, with great database components and amazing JavaBeans support. The free "Foundation" version is nice, but it doesn't give you that many of the real RAD features.
I thought BlackAdder was promising, because Python is my favorite language and Qt is my favorite widget set. But it's little more than a thin wrapper around the free QtDesigner, integrated with a not-so-hot editor. Maybe someday in the future it'll be a real IDE, but I don't know. Plus, the Python-Qt binding is a little awkward (you basically have to know C++ to use it).
Anyways, good luck. You might want to check out this page on Kylix for VB refugees [borland.com] if you haven't already. --JRZ
Do you want a language, or an IDE? (Score:5)
While you said you want to explore a different, cross-platform language, the examples you listed were all integrated development environments IDE, not languages. Indeed, ActiveState's Komodo IDE can actually be used to develop in many different languages [activestate.com]:
Conspicuously missing from that list is the language once championed as the cross-platform solution: Java [javasoft.com]. And let's not forget about the cross-platform capabilities of ANSI C or C++, if you stick to cross-platform libraries (e.g. no Microsoft Foundation Classes!)But, perhaps the real question is, what do you plan to do with this cross-platform language? Apart from being able to run on more than one platform, do you need:
On the IDE side, what features are you looking for:
As with many problems in life, you need to refine your question before you're going to be able to come up with the right answer. Putting together a good set of requirements really helps when you're trying to solve a problem. And it helps other people provide intelligent commentary.
Re:Don't use an IDE (Score:2)
Don't use an IDE (Score:5)
I use Glade (libglade is great!), Emacs and a few other things to make my development environment. Sure, you can argue that Emacs is an IDE to some degree but you can easily use any other editor in its place. This way I don't have all my application skills stuck in one place that later means I have to ask such a question.
Try lots of things and peice together what you like to suit your preferences. From there you can refine your environment until you've got something you know so well you're able to improve it beyond its limitations.
Otherwise you just get stuck with what another bunch of folk *think* is good for you.
Re:Well, there's Java... (Score:2)
fpgui (Score:2)
Yes, let's all have a good laugh (Score:2)
Also, the phrases "an expert programmer who uses Visual Basic" and "an expert Visual Basic programmer" mean very different things.
--
Re:Kylix (Score:2)
I found essentially the same para. in a different BorLink: http://www.borland.com/about/press/2001/kylix_rel
Re:On Forte for Java. (Score:2)
The VB from
Also the
And of course
I find all this talk of language independence very very funny. COnsider this.
Vast majority of the windows applications in this world are written in VC++, or VB or Delphi. Throw in java and you have the four most popular languages in the world. The
Re:MySQL (Score:2)
Re:Slashdot grows up !! ?? (Score:2)
Of course anybody like me who points out this indisputable fact (go check for yourself) will get moderated down but I got karma to blow and can always get it back up by saying something nice about MS.
Re:On Forte for Java. (Score:2)
Re:A more traditional answer... (Score:2)
I'd say Java is in the middle. It's more powerful than C but simpler than C++, and it's more dynamic than C or C++ but less so than Perl or PHP.
--
Re:who isn't qualified? (Score:2)
In physics, power is work divided by time. By analogy, I don't think it's too much of a stretch to say that something that lets me get more work done in less time gives me more power. Higher-level programming languages let me write more sophisticated programs with less effort. To me, that's more power.
--
Re:"Cross platform" just because it's cool? (Score:2)
Knowing only one language ( with quite limited usage many would say ) is like being a construction worker who only knows how to use one particular type of hammer. Sure you can use that hammer to fasten a screw to a wall, however it is usually more efficient to use a screwdriver. A developer who only knows one platform and one tool can not - in my opinion - call him or herself a developer without lying through his/her teeth.
/m
Hmm... (Score:2)
Any language can be bastardized - any program can be a crock of shit when looked at underneath - no matter the language used. It is the programmers and team that determine how well the system is put together. I have no doubt that well built systems can come out of using VB, give competent developers.
With that out of the way, what are your options?
Well, if you have to have an IDE, and you want the ease of BASIC, you might look into XBasic. If you are willing to give Java a go, get one helluva powerful computer and download the SDK and a copy of Forte CE - you will be pleasantly surprised (I liked it, except the machine I tried it out on at the time was too slow, and didn't have enough RAM, so it kept paging to disk for simple tasks, like opening up menus and such - blame that on Swing? - I dunno for sure if that was it, but something made it really slow - but the fastjavac compiler is great - Forte is VB for Java, certainly).
If you really want to try something, give up on an IDE - grab a copy of NEdit, and start playing with Perl or Python (and if game coding is something you enjoy, PyGame looks real inviting). As another poster said, *nix is the IDE - a lot of neat things can come from the command line - a few term sessions, a copy of NEdit, and you are good to go. Actually, even using Java sans IDE (like Forte) isn't that bad - it actually makes you think about the GUI you are designing when you can't see it, when using Swing (and please, use Swing if you can, and not straight AWT).
Anyhow, that is my recommendations...
Worldcom [worldcom.com] - Generation Duh!
"expert VB programmer" (Score:2)
The new Amiga SDK (Score:2)
------
Re:Delphi is dead don't waste your time. (Score:2)
Please NO! The last thing the world needs is another C++ programmer that doesn't know C (and doesn't understand pointers, for instance). Some people may argue otherwise, but I strongly suggest learning C before proceeding to C++.
------
Learning vs. Everyday use (Score:2)
Because it's easier than learning assembly language before C++.
The problem with many of today's programmers is they don't know how a computer actually works internally. They never deal with memory allocation, pointers, explicit variable declaration, abstract datatypes, locking, etc. When you don't know about these things, you make design decisions that result in inefficiency, buggy programs (including security problems), and ugly-looking code.
The best high-level programmers I've met are the ones who are good at writing low-level code. I don't suggest that people never learn C++, but I do suggest that they learn C (or assembly, if they can handle it) so they'll know what they're doing when they write code in other languages.
When you get experienced enough, you can learn any programming language in a matter of days. However, you'll only get this far if you've done both high-level AND low-level programming, and a lot in between. Since Josh Berkus has already learned a high-level language (VB), I am now suggesting a low-level language. I strongly suggest it because I've seen too many people who think "C++ is the best for everything", yet who have never actually made an effort to learn other languages.
Regarding your insult to C programmers, you are plainly wrong. Every language has its benefits and weaknesses. I also challenge you to write a Unix-like kernel in C++.
------
Re:Learning vs. Everyday use (Score:2)
The problem with many of today's programmers is they don't know how a computer actually works internally. They never deal with memory allocation, pointers, explicit variable declaration, abstract datatypes, locking, etc. When you don't know about these things, you make design decisions that result in inefficiency, buggy programs (including security problems), and ugly-looking code.
Nowhere in there do I mention C coding. All I said is doing C coding helps you understand the computer, so you'll be a better coder in other languages, when you use them.
------
Re:Learning vs. Everyday use (Score:2)
I should go to bed now. It's late and I'm putting commas before my prepositions. Ugh!
And Slashdot's lameness filter and 2-minute comment limit is really starting to piss me off... It should be pulled, or at least for people with a high enough karma. grrr...
------
Re:Learning vs. Everyday use (Score:2)
------
Re:Kylix (Score:2)
With the CLX, working between Linux and Windows should only mean a recompile, although you'll have scatterred {$IFDEF [WIN32|LINUX]}'s throughout the code
I wonder if that really is going to be the case..
I've never used Borlands stuff, but I have toyed with VB a few times - and most of the people I know who use it are basically using it as a container for ActiveX controls, and the like.
A large amount of Borland/Vb code is making use of ActiveX controls, and COM - which isn't going to be available for Linux .. surely that means that a lot of existing code isn't going to be easily portable to Linux?
Steve
---
Re:Delphi is dead don't waste your time. (Score:2)
I've had to put up with FUD like that from management types Since Delphi 2's days. Delphi 6 has just shipped, stronger than ever.
Even if it was dead, which it isn't, I'd still code in it, because it is both productive and fun. Hm, maybe that's why it's going so strong.
C++ is not JUST an OO language (Score:2)
Excuse me, but C++ was *designed* to be a multiparadigm language (procedural, generic programming (templates/containers), AND Object orientated.) That is its strength, and what makes it so complex to learn.
All 3 paradigms are orthogonal, and supported by the language. It is up to the programmer/designer to know what paradigm applies to the task.
You might want to check out these books:
Multi-Paradigm Design for C++ [amazon.com]
http://www.amazon.com/exec/obidos/ASIN/02018246
Generic Programming and the Stl : Using and Extending the C++ Standard Template Library http://www.amazon.com/exec/obidos/ASIN/0201309564
Cheers
--
"The issue today is the same as it has been throughout all history, whether man shall be allowed to govern himself or be ruled by a small elite." - Thomas Jefferson
Wrong price for BlackAdder (Score:2)
Re:Don't use an IDE (Score:2)
Why? Because you'll need to perform setup and configuration that can only really be done effectively from something like Emacs and the shell.
If you were developing to target the Windows platform, I wouldn't recommend that you use Cygwin as your primary toolset, similarly, I wouldn't recommend toolsets that are designed with Windows developers in mind as your primary toolset in Linux.
Go ahead and use the IDE for what it's designed for, screen layout and class browsing and such, but don't come whining to us if there's some hot new tools that come out for Linux later that don't integrate well with your chosen IDE.
Re:Visual Basic "Developer"? (Score:4)
I have yet to see a java, C, c++, etc project that delivered in time, on budget, and was very useful.
And... your average VB projects meet these criteria?
The fact that projects aren't delivered on time or on budget has to do with bad project management and poor time guesstimating and not the language you've been coding in. However, coding in a decent language helps you adjust for changed projects plans, modify your code for later releases (you know, there are projects out there that goes beyong the first .0 release).
Not trying to justify the post you were replying to really, I too consider it a rather pathetic attempt to look cool. However, you generalize a bit too much for my taste...
--
Re:Kylix (Score:2)
There will probably need to be some modification of the code to move them to Delphi 6/Kylix, but on the whole it's supposed to be an easy transition.
---- Sigs are bad for your health ----
RAM Cheap These Days (Score:2)
Java (Score:2)
From a language perspective it's a pretty good move too. A few years ago, Java was a major suckfest. It's matured a lot since then. You can do some really neat things with the language.
I've never used VB, but I've used a lot of other IDEs and have in general found them to be a pain in the ass. You might need a form designer to do anything useful with the MS API, but you shouldn't need one in Java. Especially if you handle the GUI components in a suitably OO fashion. (This pertains to C++ with any of the C++ based widget libs out there, too.) Just design control widgets and drop them where you need them in your form. Having seen some IDE using java programmers try to make the transition from Windows to UNIX, I can guarantee you you'll be lost at some point if you don't know what's going on under the covers, and the IDE hides all that from you. I can move from UNIX command line to Windows command line with relative ease. My co-workers can not easily move from Windows GUI to UNIX command line.
If you're not already into design patterns, you'll want to grab a few design patterns books too. Design Patterns will put you into a more useful programming mindset.
Re:Check your math... (Score:2)
Of course, the only AMD Motherboard I could find on Pricewatch that would actually take 4 DDR SDRDAM modules is the new Tyan dual-processor athlon board. So the board and hte RAM will be running you in the neighborhood of a grand by the time you're done. And by the time you add a 19" monitor, a Geforce2 ultra and a 32 GB Ultra160 SCSI drive, you're in the neighborhood of 2 grand. Ah the price we pay for progress...
Re:C and emacs, xterm, gcc (Score:2)
Well, if you use ctags, emacs/jed, gcc, gdb, and a few xterms, I wonder what additional functionality you want in an IDE.
The reality is that UNIX philosophy leads to small tools that do their jobs well. Hence, emacs, gdb, gcc, a few xterms... (actually, use vi or jed instead of emacs for the UNIX philosophy of small tools).
This philosophy is useless under a Windows environment in which the standard shell is functionally broken by UNIX standards (no pipes, for example). Why would you need instant access to header files when you are using ctags ?
So you might start by asking how you can maintain your Windows programming mentality under linux, or you might more intelligently ask what approach large projects take under linux. As a hint, GNOME and the kernel are mostly programmed with a few consoles, emacs/vi/jed, and SOMETIMES gdb and ctags. KDE has its own C++ builder, but I don't know how many people use it.
The underlying tools take a completely different approach, which makes completely different programming approaches effective.
Kylix (Score:5)
The combination of both these tools are unstoppable. The CLX is a new version of the VCL, which is basically an abstraction over Qt or the standard Windows GUI calls, and is almost as easy as Visual Basic's drag and drop controls.
I got on this path a few years back moving from Visual C++ to Borland C++ Builder. The VCL leaves MFC in the dust. Later on, I moved to Delphi, and it was a very comfortable environment to work in: You never feel like you're working
With the CLX, working between Linux and Windows should only mean a recompile, although you'll have scatterred {$IFDEF [WIN32|LINUX]}'s throughout the code.
The only thing that might make you think twice is the price. Even the standard edition of Delphi and Kylix arent really what you'd call cheap.
Well, there's always FreePascal, which is great if you don't mind devoting the majority of your time handling windowing messages, etc.
Re:The IDE must be the idea these days... (Score:2)
Re:IDLE is free (Score:5)
I think it's telling that this poster (as a VB programmer) considers the IDE and language together. It's hard to shake this mindset when you're used to proprietary languages like VB and Delphi where there is only one IDE. I'd pick the language I wanted to learn first, and then pick an IDE that suited me. High powered IDEs like VB (and I DO consider VB's IDE a fairly good one - not perfect but good) are usually good for being productive when you know a language, but can hinder your learning of a new language. Syntax hilighting, auto-complete and an object browser are probably the only features I need for a "language learner" IDE.
Re:Whats so bad about Visual Basic ? (Score:2)
Free pascal Delphi clone (Score:5)
Rather than using Kylix / Delphi, consider the Free Pascal [freepascal.org] based Lazarus [freepascal.org] project.
Currently Linux appears to be the main development platform, but the front page mentions WIN32 builds.
Java (Score:3)
It's unbelieveable the sort of things one has to do with dog's drool an optical mouse and a black chicken ...
Going away from Visual Basic (Score:5)
Next you get yourself a dry toad leg ...
Next you go out to the countryside in a full moon, friday night and find yourself an apple tree.
Now you open a little whole in the ground, under the tree and place the picture of Bill Gates in there.
Next you beat the chicken to death using the dry toad leg (in know it's difficult, but this is the only way)
Sprinkle the picture with the blood of the dead chicken and recite 666 times (i know it's a lot, but it's the number of The Beast) - "Until the ocean turns to dust of VB i will be free"
You can now safelly turn to other programming languages
Lazarus, Blackadder, Rowan (Score:5)
Metadisclaimer: My personal POV (not necessarily that of my employer) is that projects like Free Pascal and Lazarus are Good Things. They create awareness of the kind of technology we sell, which far outweighs any dent they make in our marketplace. In short, I'm claiming to have no axes to grind. Make what you will of it.
Post proper: Nobody can even consider using Lazarus for production work until the RAD features are shown to be available and reliable. The Lazarus web site does not project any date for this crucial step. And this is after 18 months of development! I'm sure they put a lot of hard work into it, but why should a developer consider Lazarus until he knows when it might be available?
Berkus quotes $999 for D6. I assume that's because he considers the Professional SKU to be the minimum that meets his needs. Which implies that he has some fairly complex work planned! All I can say is TANSTAAFL. Software development is expensive. Is doesn't get less expensive because you skimp on tools.
Some notes on Black Adder. (Does the name imply an endorsement by Rowan Atkinson?) First, this is a Python IDE. Which means interpreted code. Not all applications need native code, but it's worth bearing in mind. Also, Black Adder may be more expensive than Berkus assumes. The price he quotes is for the Beta version, and goes up drastically if you wait until the final version ships. (Again, no dates!) Plus the fees they charge for maintenance releases strike me as rather stiff. Finally, there's no indication as whether Black Adder includes a Windows version of Qt. And if it does, does that include a license for deploying Windows Qt with your app? If the answer to either question is "no" Black Adder is a lot more expensive than you think.
If I had time, I'd download the demo version of Black Adder and run it side by side with D6 (which also has a free downloadable Demo). I'd encourage anybody comparing the two products to do this.
One last quibble. Object Pascal as a proprietary language. Depends on what you mean. It's certainly less so than Visual Basic. It's just an OO version of the venerable Pascal [employees.org] programming language, which once in the running to be the standard procedural language. And it's a particulary easy language to compile, which it why is works so well as a RAD language.
__
IDLE is free (Score:4)
Came with mandrake 7.2 linux distro, but did not install correctly, which I assume to be my fault.
Oxymoron (Score:5)
That's got to be an oxymoron :-)
Look at job demand (Score:3)
Where I am in New York City, the number 1 langauge here is Java. This really supprised me. So, in my case when I am done learning python and Visual Basic, I will specialize in java. I will probably get a job as soon as possible with the best pay by chossing java over the other options. It doesnt matter how good the ide is as long as it basically works and you can learn the language. If you purchase RedHat 7.1 workstation or professional server, it will come with borland JBUilder and Fotre for java.
They are only light ide's of the professional and enterprise editions of course but you can just manually type in all the code rather then have a push button do it for you. You will learn alot more the old fashoined way. Also if the 2 ide's are annoying, you can always learn Emacs or VI. The java sdk's are the full thing and are free so its not crippled unlike Microsoft products which try to force you into buying the enterprise editions. I switched to linux just because I was pissed at Microsoft crippling Visual C on purpose.
Their are no jobs available for kylix so avoid it like the plague.
I would also recommend that you check out what technologies the programming jobs use with a particular langauge. For example if most of the Java jobs (just an example) require SQL and are run in servlets, then learn SQL and specialize in writing servlets. If you going for a c++ job and you see alot of dcom/com or corbra skills required, learn them as well because just knowing c++ won't get you anywhere. Basically pick a language, and pick your speciality with what you do in that langauge. I am only an amuture programmer from a support backgorund so I might have the best idea's here. I just look at things logically.
I recommend Kylix (Score:5)
4 points:
1) Are the development tools good?
2) Are they recognised by future employers?
3) What are the other benifits to the tool?
4) Advice
===
1) As a Visual Basic programmer, you've most likely been developing applications. You have no interest in the workings of the machine and want the RAD tool to hide that from you. RAD tools such as VB and Delphi are good for quickly developing applications. They must be easy to use. Kylix is easy to use.
2) Companies look towards the leaders in development technology for tools. It is common for "management" to only recognise brand names. Known vs Unknown. I, again, recommend Borland Kylix as Borland has a well established brand name. Future employees will recognise you're skills associated with products from that company.
3) Borland supports many different platforms. Windows, Linux, MacOSX, Solaris are just a few of the notable environments they support. Kylix is not necessarily available on all of them, however: Borland's tools are designed to be as similar as possible. Moving between C++ Builder and Delphi is easy. The environment in JBuilder is predictable, on all platforms. I'd imagine it would be relatively easy to port their current products to different platforms. I would also imagine that their next step would be to move Kylix to MacOSX. So, By taking up Kylix, you get an exposure to the development environments which Borland uses. In addition, if/when borland ports Kylix to MacOSX, you'll easily be able to leverage your current skills in the MacOSX arena.
4) In the short-term, for your career, look to the current development tools which will suit you best. To master applications development in linux, you'll need to have a look at all the environments once you have a better understanding of Linux. Only then will you be able to choose the environment which suits you best.
Re:Gideon/KDevelop (Score:3)
The current KDevelop, or the 1.4 branch from CVS, is definitely worth a look. It's free, is pretty full-featured, integrates well with the excellent Qt Designer and is quite competitive with the commercial offerings. (Although I haven't seen Kylix.)
Also Qt is cross-platform (although the Windows version isn't under a free license) and it's superbly documented and supported, unlike most of the other Linux favorites.
Unsettling MOTD at my ISP.
Well, there's Java... (Score:5)
Are you doing a database app? Use Kylix (Score:3)
When i first tried Delphi, at version 2, it was light years ahead of VB 4 - real data aware controls you can use without tons of coding behind the form, visual form inheritance, which is a god-send, compiled speed (and compiling takes all of 10 seconds for a 30 form db app). Since then, i have quite 2 jobs where they wanted me to use VB 5/6 instead of Delphi - my life isn't worth wasting and losing weekends just to work with a crappy tool, when i know Delphi cuts the time by 90% - that is NOT an understatement.
So, if you do db apps, you have to check if these tools in the Linux world have real database controls, grids, combo controls, etc which you can use without writing any code. I doubt it, i haven't seen any of the ones mentioned say they have this feature. So, use Kylix, it has all those features of Delphi, and within 1 day, you would have saved the cost of the $199, and from then on it will be gravy.
And, you can just do a recompile and bring the app back into Windows through Delphi. And take a look at the feature set Delphi 6 has - it is enormous, and extremely powerful, especially DataSnap and WebSnap for Web Services, far outstripping what MS or anyone else has -- Kylix will get all this too. I've also worked with Jbuilder and it has good database tools too.
alex
Expert VB Programmers (Score:5)
Where do you go after Visual Basic? (Score:5)
On Forte for Java. (Score:3)
Cons and pros, Of course most of these are generally on RAD tools, but these are what I have Learned by experience. (on the newest release by the forte page.)
Pro Forte:
1. Forte is pretty fast way of developing java applications that run on alla java enabled platforms. It can do all the java Swing and AWT functionalities and you can add new Beans to it if you reimplement Swing classes.
2. On basis of 1. Forte is exellent tool for creating installation tools, as they do not need too complicated java, and run on java VM. (sybase installers are coded on java2).
So this is where I see a chance to plot a linux world domination: If not so power user would have these easy and working installation/deinstallation wizards that would be similar to the other OS's ones, it could make the system more applicable... And admins of some software, like DBA:s etc. could teach them selves only one installation procedure for all platforms.
3. It is free for non commercial use. (Learning Java!)
Con Forte:
1. Forte is not too stable. In win2k (for my work) platform it crashes especially on debug mode.
2. As a java program it eats (if you let it) humongous amounts of memory in win2k (ok not as much as vb.net but 196megs is barely enough). There is nothing wrong with this if you use it at work and your employer pays the memory.
3. As so many other RAD tools, its settings are pure blather to a newbie. An after one year of using different versions of it I still do not know if there is a way to make generated code editable in editor and not in popup box 4. It does much of the Java classpath and package stuff automaticly, and therefore developer's often get stuck with them on the deployement phase. (as you no not have to set any of the classpath thins as they are as Forte overrides enviroment variables).
So I'd say its exelent RAD for Java for there is no real competition, to my knnowledge at least.