Where Do You Go After Visual Basic?
"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?
It supports Java, Perl, Python, Php, c, and c++. Personally I think the python support looks especially interesting.
Rikard[Science] is one of the very few things that raises human life a little above farce and gives it the grace of tragedy.
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.
Python and Object Pascal are nice languages, and the former, like Perl, can come in very handy for the same sort of quick prototyping VB lets you do. If yu're learning Perl or Python, start with a plain text editor and the command line. They are first and foremost console-based scripting languages, and that's how you should orient yourself to them. Once you've got your bearings, then bring in the IDE.
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.
Is there a reason why you are not considering Java?
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 is a great language, and there are several very good IDEs available for Linux. I have used JBuilder professionally for 8 months now - before that I used emacs exclussively, but I'm not going back now! JBuilder is top notch but lacks a great refactoring browser. I know you can buy a refactoring tool called jfactor that plugs into VisualAge, so if that's important to you, then maybe you should try that.
I've been in a similar situation - I've done years of programming in VB and Access.
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
-- My Weblog.
First of all, you're hampered and crippled by being a VB programmer. From you question, it seems as if you're seeking the Linux/Unix equivalent of VB. Forget it.
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 Government Is a Body of People, Usually Notably Ungoverned
You should not be limiting yourself on learning a language based on the IDE available. Learn C. Use an IDE if you wish.
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 if you haven't already. --JRZ
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:
Conspicuously missing from that list is the language once championed as the cross-platform solution: Java. 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:
- speed
- easy GUI development
- standardized database access
- standalone executables, interpreted scripts, browser-as-client, or server-side development
And exactly which platforms do you need to run this on? Just Windows and Linux? PalmOS and WinCE? Solaris, AIX, HP-UX, Plan 9, and Amiga?On the IDE side, what features are you looking for:
- syntax highlighting
- syntax completion
- auto-formatting
- debugging
- integrated help and reference info
- drag'n'drop GUI development
- code repository/version control
- IDE itself running on different platforms
- free (beer or philosophically) or proprietary
If all you need is syntax highlighting and auto-formatting, then VIm could suit you just fine, with some custom scripting for goodies like debugging and version control. But you might want more than that.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.
Build you own IDE from seperate bits that fit how you work.
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.
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...
--
May we live long and die out
I'd definately go with Kylix. Delphi 6 is shipping this week on the Windows side (Actually, I believe it was June 8th.)
/against/ the compiler. I started with the assumption that I'd be "cramped" by Delphi's Object Pascal's roots, but it turns out, Borland has done some great work in the syntax, now it's basically just a slightly more verbose C++ Builder, with a few nice things you'd miss while working in another language.
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.
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.
Rather than using Kylix / Delphi, consider the Free Pascal based Lazarus project.
Currently Linux appears to be the main development platform, but the front page mentions WIN32 builds.
"Mary had a crypto key, she kept it in escrow, and everything that Mary said, the Feds were sure to know."
It's unbelieveable the sort of things one has to do with dog's drool an optical mouse and a black chicken ...
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
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 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 (a python GUI IDE) has all the essentials for an IDE. Comes with source. Windows version is very nice.
Came with mandrake 7.2 linux distro, but did not install correctly, which I assume to be my fault.
That's got to be an oxymoron :-)
A journey of a thousand miles starts with a brutal anal raping at airport security
Go to www.yahoo.com and search through the classified sections with keywords "Java", "c++", "Visual Basic", "Perl", and "Python". Then count the amount of jobs available. Pick the one with the most jobs available. Remember, that software packages can be very expensive and you should purchase them as an investment that can pay off in your career. Also you may want to learn a new programming langauge for fun and thats cool but try to look at the big picture.
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.
http://saveie6.com/
Going from one commercial environment to another, I recommend Borland Kylix / Delphi.
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.
Though many frown on it - if Java will fit your needs, Sun has an excellent IDE called Forte - very powerful program and they have a free version available. See http://java.sun.com/.
Top Most Bizarre/Disturbing Error Messages
This is the main queston. I was a VB programmer for 3 years, from VB 3 until VB 5 came out. VB is a disaster for writing database apps. I think you know how VB is compared to Access, since you say you are a VB expert. And VB doesn't come close to Access. And Access doesn't come close to Delphi.
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
Okay, wading into the fray here. I've written three books on Visual Basic. For what it is - a RAD tool for developing GUIs and components, it's okay. Not great, but no worse than most Java implementations. I actually used to do a lot of prototyping in VB because I could see in a matter of hours what would take me days to do in C++, though its clunky distribution process, poor multimedia support and bizarre event handling (most basic objects do not support mouseover and mouseout, for instance) made it less than ideal for building production level tools. I do almost all of my GUI work in this day and age using XML, XSLT, JavaScript and servlets, typically against the IE5 browser. I like having VB around to give me a quick look at a COM object's classes, but found recently that when I picked up a new machine and couldn't find my VB installer disks, I didn't really need it. By the way, VB.NET is a monstrosity. It tries unsuccessfully to be Java, it loses all of the best features of VB and keeps many of the worst, and it is not even remotely compatible with anything written before it. Even the hard core VB enthusiasts that I know (and yes, they are expert VB programmers, and most also know C++, Java, and a host of other languages, thank you) just grimace when they have to talk about VB.NET publicly. -- Kurt Cagle -- Author, XML Developers Handbook, Sybex and VB6 Gold Book, Coriolis
-- Another senseless waste of fine bytes.
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.
In dream society, people could be given the ability to mod replies. In real life, it would be disaster.