25

I'm a teen who has been programming since 8 years old, so I know what I do. I want to take a look at Delphi Windows development.

The problem with this, is that Embarcadero's Delphi is really expensive, and I can't afford it.

I wanted to know if Lazarus is a good alternative, now for learning and hobby, but in a few years for working.

If I learn Lazarus now, would I know Delphi also ? Do I need to learn Pascal first ? Any good Lazarus books ? If I learn Lazarus from a Delphi book it's ok ?.

Thanks.

dysoco
  • 253
  • 3
  • 4
  • 4
    Free Pascal is a fantastic way to learn the fundamentals of Object Pascal. Go for it! – David Heffernan Aug 22 '11 at 20:17
  • Dysoco; The free pascal community and lazarus community are also very friendly, and Lazarus is a lot of fun. Go ahead, and use it if you can't afford Delphi. I really wish there was a free version for folks like you, or that the Starter edition was $20 instead of $150, but I can't fix that for you, sorry! – Warren P Aug 23 '11 at 00:42
  • Lazarus is not a language, it's an IDE ( interactive-developpment environement). For the answer, all Pascal language features are in Delphi language, but Delphi has more.For learning, Lazarus is ok(use the DElphi mode directive), but for developping, its debugger might be a stoper. – az01 Aug 24 '11 at 18:03

5 Answers5

13

Some things to be aware of:

  1. The component library for lazarus, the LCL is similar in many ways, to the VCL library for Delphi, but there are differences, the biggest being the many components in the VCL that are not in lazarus. As a means of learning Delphi programming, this seems to me to be the biggest shortcoming.

  2. The IDE for Lazarus is similar in many ways to the Delphi 7 IDE (and older versions) and looks nothing at all, and works nothing at all, like modern Delphi IDE versions. So your learning of Lazarus would be somewhat transferable to the now-ancient version Delphi 7, but wouldn't be of much use in knowing your way around the delphi IDE. Installation of packages works completely differently too. Delphi has true support for packages, whereas lazarus rebuilds and relinks itself in order to add more "designtime components" to itself.

  3. The base languages are also almost identical, but I would expect to find some strange differences. There is some brief description of the differences on Wikipedia.

I agree with Kico; The delphi starter edition is not expensive.

Warren P
  • 65,725
  • 40
  • 181
  • 316
  • 1
    I think you need to declare your affiliation to Embarcadero when answering such questions. I think your answer is honest and independent, but I still think you should state that you are employed by Emba. – David Heffernan Aug 22 '11 at 20:21
  • 1
    @David: AFAIK, Warren is not an Embarcadero employee anymore. – Rudy Velthuis Aug 22 '11 at 22:13
  • Warren is currently not an Embarcadero employee. – Bruce McGee Aug 23 '11 at 00:23
  • That is correct. I no longer work at Embarcadero. I am now an full-time Delphi developer working for a company that makes software using Delphi, in Toronto. – Warren P Aug 23 '11 at 00:35
  • 2
    The "starter" edition lacks of the VCL source code, IMHO. Even for starters, using an IDE a very good way of learning and writing some RAD programs, but some design and implementation patterns can be more deeply understood by looking at existing code. The LCL code is not so "clean" - why so many files, but it's a matter of taste and habbit. Learning Delphi is not just learning a language, but also learning a library. IMHO the RTL (with the addition to Visual VCL or FireMonkey) code is a great place to learn how to code. – Arnaud Bouchez Aug 23 '11 at 06:44
  • Arnaud; I agree with you about it being helpful to have the VCL source code while learning. But you can get a lot done with starter edition, and the help in XE is finally reasonably good again. – Warren P Aug 23 '11 at 14:09
  • I think it will be hard to create more confusion than Embarcadero created with the unicode move. Don't get me wrong, I think that that move was a right one, but still, it creates a lot of confusion, and Delphi sources on the internet are still split into two factions – Marco van de Voort Aug 24 '11 at 08:04
  • And of course the LCL is a lot more similar than Firemonkey :-) – Marco van de Voort Aug 24 '11 at 08:25
  • I got two downvotes today on this answer, I'm assuming someone thought this answer was "Anti-lazarus". Not sure though. – Warren P Aug 24 '11 at 14:27
5

there's a version of Delphi called Embarcadero Delphi XE Starter Edition, which have a very good price (free I guess).

I can't recommend Lazarus as a good option for learning Delphi because besides the languages are basically Pascal, they have some differences which could confuse you.

Here is the link for the old Turbo Delphi project (which became the Delphi XE Starter Edition) where you can download your copy.

Kico Lobo
  • 4,374
  • 4
  • 35
  • 48
  • 6
    I don't agree with second paragraph. The fundamentals are the same. – David Heffernan Aug 22 '11 at 20:05
  • Learning to fly on an airplane with two wings and a tail and a nose, is learning to fly. But learning to fly a Cesna 150 and learning to fly some other plane are not the same thing. To know a thing, learn it, not a generic substitute. – Warren P Aug 22 '11 at 20:11
  • 3
    It's 200€, too expensive for me, and what if I buy it and then I don't feel good with it ? Like when I tried C#. – dysoco Aug 22 '11 at 20:12
  • 10
    @Kico: It seems like you guessed wrong. 200€ is remarkably expensive, especially since Microsoft give away their Express editions for free. I think this will make a lot of young developers choose Visual Studio over Delphi. In fact, the *only* reason *I* am a Delphi devloper today, is that the only free (and decent) IDE that was readily accessible when I was a kid was Delphi. I learned programming in Delphi 4 Personal, which was free, and was shipped with the CD accompanying *Datormagazin*, Sweden's largest computer magazine for advanced users. – Andreas Rejbrand Aug 22 '11 at 20:47
  • 2
    I was 12 at that time, and spending 1 800 kr on an IDE wouldn't have been an option at all. It's the wrong order of magnitude for a kid. (Of course, today, as an adult Swede, I don't think 1 800 kr is that much.) – Andreas Rejbrand Aug 22 '11 at 20:56
  • @Kico: don't recommend Turbo Delphi. Even if one can find a copy on one of the mirrors left, one won't be able to obtain a license anymore. That is official. – Rudy Velthuis Aug 22 '11 at 22:14
  • Oh, I didn't know it was a paid product. That's a shame considering is actually a dying programming environment :( – Kico Lobo Aug 22 '11 at 23:01
  • Everything other than one thing is dying, and that one thing is whatever Kico Lobo is using, surely. :-) – Warren P Aug 23 '11 at 00:36
  • Moreover I don't think the differences matter that much the first few years. – Marco van de Voort Aug 24 '11 at 08:43
5

There's already lots of views on this so take your pick. Mine for what it's worth, is that learning a language and more specifically HOW to program is the most important aspect. I know many skilled programmers who can and do use a multitude of languages - C, C++, Java, Ruby, Python, PHP, Delphi and so on. They all say to me that once you learn and are good at the fundamentals of a while loop, a for loop, and so on, applying that to a new language is easy enough.

I have not produced loads of software but I've achieved more in the last year using Lazarus and Free Pascal than I ever did with any other language - Python and Delphi included! I can easily create cross-platform GUI's that run on all OS'es with powerful procedures that I couldn't make with Python and\or Delphi. I am not saying they couldn't be made with those languages, but I was able to make them easily and quickly with Laz+FPC.

So, personally, even if I could afford to buy Delphi, I'd use Lazarus. I don't see that Delphi offers me, at my level, anything significant over and above Lazarus. So at your level and age, I'd say learn everything you can and when you outgrow Lazarus (if you ever do) move on to DELPHI. The interface transition will be easy enough once you know the language.

Gizmo_the_Great
  • 979
  • 13
  • 28
3

If you are still in school, you should check to see if there are educational discounts for Delphi

Dan
  • 31
  • 1
  • 1
    In Germany the educational version is 159 Euros (download) or 169 Euros (DVD). Still quite expensive for somebody at school. Maybe Lazarus isn't such a bad idea but last time I tried it it was far from stable (which was several months (or even years) ago, so this might have changed significantly). – dummzeuch Aug 23 '11 at 08:13
2

Primarily I think that you should let yourself be guided what your immediate surroundings use. The people on the forum you intend to frequent, friends, coworkers/students, whatever they use should be an important factor in what you do. Since they are the ones you will ask questions, exchange source etc.

They might be using older versions of Delphi, Lazarus or the newest of the newest Embarcadero version. E.g. for my work, I visit electrical engineering departments a lot, and they uniformly use a Delphi 6 or 7. And if not, usually older rather than newer.

If you are gearing up to do a bit of side jobs with Delphi you have a problem. You can buy starter to learn, but as soon as you start asking money for it, you have to acquire a full license(*), and the starter license is money lost. Specially since Embarcadero recently limited the period that old versions might upgrade, you might not even get a discount on the full version because of an older starter purchase in a few years.

Besides being free, Lazarus, for educational purposes has one big advantage: the number of versions in active use is usually limited to the last two releases. This reduces versionconflicts and at worst versionitis is only temporary. This means all your peers will more or less use the same version, while with Delphi they might be scattered over more than 5-6 versions.

And of course updating lazarus is also free :-) (which is important to consider in a multi year planning, the same people urging you to buy now will urge you to get the latest and greatest in a few years too)

Personally, I think that Lazarus is fine for the initial learning and that differences that really would be a stumbling block are much further down the track. And you get a VCL/LCL path to other platforms. You can always get a Delphi version later when plans are more concrete. (either to find employment, or if you start being a self employed programmer)

(*) luckily, if I understood it right, the starter edition now allows non commercial use in foundations.

Marco van de Voort
  • 25,628
  • 5
  • 56
  • 89