Link to home
Start Free TrialLog in
Avatar of msuarez
msuarez

asked on

Deciding for a new programming language ¿?

I'm trying to decide for a language to learn. I'm still using Foxpro 2.X but I can work with oop. Besides, I know some Html, Visual Basic and Visual FoxPro.
At my company, we're working with Foxpro 2.6 and there is a plan to migrate to Oracle and Delphi next year. We don't know when and We are not sure they are going to keep us (Foxpro Programmers).
What Would you recommend to me? It's hard to learn Oracle or MS-SQL at home, and I don't want to learn Delphi if I'm not going to use it.
I don't have money to study nor to take a course.
Should I learn Visual Basic and MS-SQL?
I'm falling behind and I'm need to be up to date.
Can you help me?
Avatar of simonet
simonet
Flag of Brazil image

Why do you think you'll not be using Delphi?

Delphi is the best language around today. It can work with all RDBMS with top perfomance.

The learning curve is pretty steep and there are lots of documentation (books, periodicals and sites) on it, including support groups (including EE) everywhere.

Delphi is not only an easy-to-learn development environment: it's also very powerful (much, *MUCH* more powerful than VB). You can do basically anything with it, including things VB programmers cannot even dream of.

Yours,

Alex
Avatar of nil_dib
nil_dib

>Delphi is the best language around today ..
I don't think there is A best language ...
It always depends on your problem, platform, performance issues etc.
Someone here said: the best language is the language you are familiar with!

nil_dib
Actually, there IS a best language around today. Assembly, ASM is the best language there is (unless you can right machine code or microcode), all other languages (including your precious Delphi) are converted to Assembly before they can do anything.  Keep that in mind at all times.
80486 Assembly would be a poor language to use for a program runing on a R10000, and vice versa.
Yes but, if you haven't noticed, we aren't exactly talking about running a x86 assembly made program on a MIPS platform or any other one for that matter..
ASM is indeed the most powerful language (no questions about that), but consider these factors when choosing a development tool:

- Learning curve
- Time-To-Market (of the software being developed); also consider this as "development time"
- Support tools
- Availability of documentation
- Debugging tools
- Cross-platform compatibility (this is the hot word nowadays, isn't it?!)
- Performance (optimization) and quality of the generated code (by the compiler)
- Ability to use new technologies (such as DCOM, CORBA, XML, etc)
- Compiler performance (ie, lines/second)

There are other factors one should consider as well, but these are the ones I could come up with at 2:00 am.

No tool is the best one on all of the above requirements. ASM, for example, is a very fast compiler, but the code it generates is as good as the person who writes it. OTOH, let's get real, how easy is it to use DCOM with ASM.

C/C++ ranks top in many categories above, but it is still very hard for beginners and its Time-To-Market is not very short which is, economically speaking, a very bad thing nowadays.

VB... well we are talking about serious development tools, right?

Delphi is the easiest language to learn (basically everybody learns Pascal in college in technical areas), has the fastest Time-To-Market, the compiler generates great code. Documentation could be a little better, but it is very easy to find all sorts of info on the Internet. Taking the average of all the requirements, Delphi beats every development tool on the market today.

Yours,

Alex
Of course, it all does depend on what you need your program to do.

I mean, if you're writing a new device driver for some fast as h*ll new video chip, something like Visual Basic may not be the way to go (unless you want to lose your job, find out your wife is cheating on you, get kicked out of your apartment/house, and finally try looking for a good-sized refridgerator box to live in.). lol

I mean, there is essentially a programming language for every type of program out there.  ASM is by far the best but, I will agree that it is too hard for some and takes too long also.  Of course, it is about as fast as you will get (machine/micro-code anyone?).

I would have to rank C++ up their among the best of languages, it isn't very hard to use, it is still pretty fast and stable/reliable and it really doesn't take that long to make a program in it.

I must admit though, RAD (Rapid Application Development) environments like Delphi/VB are very nice to have, they really do reduce the time it takes to make programs, albeit, at a price.
Your observations are right, Corpse. It all depends on ones purposes. However, my statement that Delphi was the best language around, was made taking msuarez's comments in consideration.

His/her primary goals seems to be database and Internet programming. For his profile, Delphi really seems to be the way to go.

Call me "brainwashed", but I really don't consider VB as a serious programming tool. It can do stuff, but it doesn't rank in the same level as Delphi. Delphi is a much more professional tool than VB, not to mention it isn't as limited as VB is. Even more now that it is a fact that there will be Delphi for Linux.

Alex
I only really know two languages, VB and C++. Corpse and simonet have made some good points about VB's lack of power, inflexibility, and strange designs. There is another point that has been left out, of course: it's also in very wide use. Also, it's extremely useful in conjuction with any other language, because MS's Office can be so powerfully programmed through it. In other words, it's far from the best language out there, but it might be the most widely used.

As for Delphi, I can't of course speak, as I don't know it, but I tend to distrust such blanket statements as "Delphi is the best language around today." (Personally I think C++ is ;-) ;-). Different languages excel in different areas. Delphi might well be the best DB tool.

And now, on to C++. It does have quite a learning curve, but it is worth it: C++ programmers can keep up with any technology in existance, and any that come down the pike in the near future(which, as simonet pointed out, is important.) It's flexible and in demand. I would definitely recommend that you consider it, msuarez. (You don't need to take a course to learn it; I didn't take one. You'll need a few books, though).

You asked about MS-SQL. Of course the actual language SQL is very important to know. Once you know that, I would say (but this is backed up with only a little experience) that you can learn the details of a specific SQL database as you need it.

Note that C++ also can be used with SQL Server and others.

All the best, whatever you decide!
Stephen McKeown
semck83@hotmail.com
Delphi rules... but im now stuck with VB and MS-Access
I would recommend that you learn Powerbuilder by Sybase. IT's a very powerful database client-server app builder and it allows you the use of the SQL that you probably already know using FoxPro. Besides that, Powerbuilder itself was written in C so when you load a program with it, you are actually using more efficient code. This is because with VB you have to take up memory at the very beginning of an application because all it's parts are loaded at once, whether you tell it to load later or not, it's actually already there. Finally, PowerBuilder is a very simple language to learn, and is in high demand with companies who use database systems. I started to learn it back in August, and now I just tested and certified with a proficient rating. So, though there are other languages out there that may be faster, those out there that may be more widespread in use, I would still recommend powerbuilder.

For more info, email me:
jgebelt@hotmail.com
Actually, Powerbuilder's having been written in C doesn't mean too much. So were VB, VC++, and very likely Delphi (though that's only a guess).

If PowerBuilder is a very easy language to learn, then it probably would be a good thing for msuarez to learn, if it's not too expensive, but he should also learn a more mainstream language. And if he wishes to learn only one, he could probably learn the aformentioned as needed.

Just thoughts, though. I'm sure it is a great language.

All the best,
Stephen
semck,

Most of Delphi was written in Delphi.  Pretty crazy claim that it was written in C.  Although both of Borland's C++Builder and Delphi products use the same backend (assembly, no doubt) compiler.

Assembly could hardly be called the most powerful, or any language for that matter, without defining powerful.  If reducing time-to-market and flexibility makes an app "powerful", assembly loses.  Frankly, assembly would be one of my last choices for a database programmer looking into a new tool.  If you need speed in a specific process, find the bottle-neck and rewrite it in assembly code.  Mixed-language programming is powerful.  If you're writing hardware code, no doubt the hardware manufacturer provides compilers for it.  Intel 8051 chips can be programmed with Archimedes-C (same mixed language argument applies here).

I would NEVER recommend that an entire program be designed and written, from start to finish, in assembly.  I just can't think of a real-world application where that would be necessary.

If the original poster wants to keep on at the same company, the obvious choice is Delphi.  Read the question again.

Powerbuilder seems to amount to little more than a GUI giving access to a host of C/C++ runtime libraries (objects,classes etc.)  This is not a knock against Powerbuilder.  I've used it and liked it and Powersoft's tech support is great.
"Assembly could hardly be called the most powerful, or any language for that matter, without defining powerful" - Speed, Reliability and the ability to be able to do whatever you need, that is power in a programming language.  And since every programming language uses Assembly to do it's bidding (in the conversion process to processor code) you can hardly call any language better than assembly.

Assembly may be time consuming but, you can't say the end reslut isn't worth the time.  What I say is that, if a program isn't worth the time it takes to make it then there must be something wrong.
My appologies, robtanner, for my error about Delphi. Thank you for correcting me.

Personally, I would say that by the general definition of powerful, which is that a language lets you do the most, assembly is in fact the most powerful language. That said, I agree that you'd have to be crazy to try to write a database program in it, unless you were living in some kind of Utopia where schedules were irrelevant.

I have a problem with Corpes's logic. If a program is needed in six months, then I can most certainly say that it would not be worth taking 18 months to do it in assembler, just becase it gives me thrills (which is doesn't, anyway).

There's no point using a language just because it's the most powerful. If you can do the same thing elegantly in another language in half the time (and probably half the bugs), there's no reason not to.
semck, I forgot to say it clearly but, my logic wasn't only intended towards Assembly.  I should have made a new paragraph and said that.

Think about this, if it takes you a year to build a new game engine for some hot new 3D game (I know it would take longer than a year for a good one, I'm just saying..) the end result better be worth the year's wait.  That said, Assembly SHOULDN'T be the language of choice, because, albeit the game may run at 200fps on a 386 it wouldn't be worth a years work.

Assembly is the most powerful language but, I will admit, Asembly is just a base language, it is more worth it to use like C++ or something else that runs through it instead of ASM itself..
Again, powerful means different things to different people.

I would say any C compiler that allows in-line assembly is more "powerful" than assembly, because it allows me to write less buggy code in less time (assuming a good compiler), while allowing me to tweak those portions of code that really need it.

Since we're using quotes:  "Speed, Reliability and the ability to be able to do whatever you need, that is power in a programming language."

Assembly is not very speedy in terms of writing code.  It also introduces more possibility for error (i.e. NOT reliability).  Finally, if I whatever I want, is to let a compiler worry about the stack, allocating dynamic memory and other such features of the 3 and 4/GL's, assembly lets me down again.  I'M NOT KNOCKING ASSEMBLY.  The term "powerful" is subjective.

ALL languages have benefits and pitfalls.  The only reasonable debate about languages, is one surrounding suitability for a task.  All too often people call their favourite development tool "the most powerful".  Who cares really?  That's much less interesting a discussion than why something is "better" for a given task.  Which is what the original question was about, and, since I have nothing "new" to add.  I will bow out.  Thanks for listening.  Be well.
Thanks for the clarification, corpse. I agree with your modified statement.

I disagree that power in a programming language is subjective. Power is how much you can do with it, nothing else. Nobody tries to say that a Toyota Corolla is more powerful than a Mack Truck, just because it's easier and funner to drive.

Same with programming languages. One must be careful not to confuse "more powerful" with "better". That is, while assembler IS the most powerful language, it's not the best, because of those other issues that robtanner129 mentioned.

Sincerely,
Stephen
semck, that is a great point you have there.

Programming languages, as with everything else in life have certain tradeoffs.  I think most people would agree that BASIC itself is quite possibly the easiest language to learn out of all of them (although, I wouldn't really consider it a programming language), but, I think most people would agree that it is the slowest language there is.

On the other hand, most people would say Assembly is the hardest to learn but, as everyone knows, it is the fastest and can do the most ( there is no debating that.).

Everyone should find their own happy medium, one person may understand C++ like they understand their own primary language ( I mean speaking/writing) while another person may find it too hard and might use an easier language even if it has it's pitfalls.

If everyone had the ability and time they would use ASM, right?  But, that isn't how it is so, you really can't say one language is the best (everyone has their own opinion based on there own thoughts).

So, if you have the mental capacity and the time go for ASM, but, if you don't have the time or mental capacity then find a language that you are comfortable with that suits your needs.
Hey guys, the question wasn't about whats the best language to use, it's what's the best language to make a living at!  Big difference.  And it sounds as if msuarez isn't all that experienced, so while you might be able to find a market for a Perl/Tcl network programmer, msuarez isn't gonna be that any time soon!

Sounds like the answer is VB.  Yes I know, it's a pile of dung and it stinketh mightily.  But it's what is in widespread use, it's quick to learn, and given what we know about msuarez's background, it's probably what (s)he should learn.

I wouldn't write off learning SQL.  You can go a long ways toward teaching yourself with Access.  The differences between Oracle's SQL, SQL-Server's SQL, and Access' SQL are pretty minor.

If you think that learning Delphi will help you at your current employer then it may be the thing to learn.  It *is* a pretty neat language.  But if you think you're out the door no matter what, you will find it a hard skill to market.

Indeed, if you expect to be out in the cold, cruel world fairly soon, I'd go for VB, ASP and Site Server.  These aren't technically the most challenging, but they sure are hot right now, and they are all easy to learn.
This has been a nice argument. But is msuarez any closer to an answer?

..B ekiM
ASKER CERTIFIED SOLUTION
Avatar of abdij
abdij

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of msuarez

ASKER

I give up. I had decided learn Delphi, but I think the market is too reduced, where I live just two large companies are using it. I'm going to learn VB, MS SQL, etc, etc.
If my company finally move to Delphi and Oracle, I'll have to learn that anyway, since thay don't have a any plans yet, I'm going to join Microsoft tribe.

Thanks to all.