About 10 years ago I bought Borland Delphi, as a child I thought it was the coolest thing ever but I never really got into it. Sometime I see post on SO with a Delphi tag so people must actually still use it. I am curious how does it compare to something like C#? Can it basicly accomplish the same results?
Actually, C# was created by Anders Hejlsberg, who was the chief architect of Delphi before Microsoft hired him away from Borland. They picked him because what he had created previously was the best solution available for writing Windows apps, and what he made for them came out looking a whole lot like Delphi rewritten in C syntax.
So your answer is yes, if you're familiar with C# you should find Delphi very easy to pick up and become productive with, and personally, I'd definitely consider it a good language to learn.
Yes, I would definitely recommend Delphi as a language - both to learn and to use professionally, if you have a chance to do so.
Delphi and the VCL (Visual Component Library) will teach you very good principles of software design, and making the switch from Delphi/VCL to e.g. C# and the .NET framework (or the other way around) is a no-brainer.
The big benefit of Delphi compared with C#/.NET is the fact you can compile into Win32 native code - native as in : no .NET framework, no Java runtime - nothing like that required. Your EXE will run on top of just Windows - no additional stuff needed.
Delphi is used. It has been through some hard times but now it found a new home that takes care of it.
It is a great language to learn. And you still can make great applications with it. There are a lot of external component suppliers, both free and paid.
Another plus, if you have an older version (even V1) you can still upgrade to the latest version. And 2010 is really great to work with.
Ah the good old days. I remember being relieved that Delphi 2.0 came with a copy of 1.0 so you could still write 16-bit apps.
Anyway, I really like Delphi. It's pretty easy to learn and has a (IMHO) a great IDE and debugger -- things lacking from some of the trendier languages like Ruby. That said, it's clearly a niche platform. Microsoft won the war.
If you're designing something for yourself, go for it. But if you're looking for marketable skills to add to the CV, I'd probably look elsewhere.
Why you think Codegear sell 1 million dev tool licenses to Russia !
I am curious how does it compare to something like C#? Can it basicly accomplish the same results?
Delphi can do everything that can be done with C#, and it will run faster. On the other hand, C# or other .NET languages can say the same?.
Learning Delphi is a waste of time?.
NO. When you learn Delphi, you are learning Object Pascal, the same language used by FreePascal, and knowing it, you can develop for Windows, Linux, Mac, and so on. So the market you could reach is broader than you can think initially.
So, learning another programming language is a waste of time?
Absolutely not, increasing your knowledge will place you in a better position against problems, it will help you find solutions faster, and if you find solutions faster, you'll get better job opportinities and/or ideas to create your own software company.
This also can/must be extended to learning other aspects related to programming, like Databases, Networking, Operating Systems, etc.
It's the best language out there. Beautiful object model, real pointers. No garbage collection. No multiple inheritance (I take that as a plus). The best implementation of properties paradigm. And it gives you the ability to dive as deep as you need to (ASM). As you may imagine, I would recommend it.
We rely pretty much 100% on Delphi for our Client/Server based application. It seems to be very popular for people making desktop database applications (vs both local file and client/server databases). And you can also write Apache filters and DSO for web applications.
In my opinion Delphi is great for the "Entrepreneurial Minded" developer. Indeed you can get an application up and running very quickly (RAD - Rapid Application Development). Not that other programming languages can't do this, but Delphi programmers tend to be people who "just get it done" and not so concerned with using more prestigious, sexy, state of the art languages such as Microsoft and Ruby.
I will 2nd the prior remark that Delphi seems to be very heavily used amongst Europeans and in Russia, and less here in the states.
Lastly, I have been VERY encouraged by the activity of Delphi developers on StackOverflow. At times I would get quite nervous about the "lack" of information/chatter about Delphi on the internet. But as you can see, Delphi is a Tag on SO with many topics.
The reasons to go with Delphi then are basically still valid, and C# doesn't really change them:
- fairly long term backwards compatibility (MS trackrecord is not flawless here, where are the ones that went with VB now? Seen any .NET 1.1 runtime updates lately?)
- standalone exe
- reasonably fast, with a predicable behaviour and performance.
- great to build GUI apps.
If you want to go web development, go C#, want to do desktop app development, go Delphi.
Jason ---
We are roughly the same age. I bring that up, because people our age don't ever seem to be using Delphi. I started with C# in 2005, because I wanted something I could easily create GUI applications with. I took a VB6 class in college (in 2002), but I knew it was no longer supported and the new product was C#. So I downloaded SharpDevelop (this was before the VS Express editions) and made my first C# application.
I found C# to be rather easy and fun to use. However, 3 of my co-workers were prodding me to learn Delphi. So my boss bought me a copy of Delphi 2006...and the rest is history. It is one of the best decisions I have made in my career.
I was able to write Windows Services with ease, I finally learned how to use the Windows API, and working with the VCL (Visual Component Library) made writing GUI applications as easy (if not easier) than C#.
Learning Delphi finally taught me to understand data structures and real programming techniques. Without Delphi, I don't know if I would've ever learned to use and understand the Windows API.
The benefit of Delphi is that the programs are native (no framework req'd), small, and fast. I can put together an application in Delphi as fast as I can in C# (if not faster). The big difference is that in C#, most programmers don't understand how to accomplish something unless it's wrapped by the .NET Framework.
With Delphi, you are gently introduced to the Windows API (which is what the .NET Framework "wraps up" --- to put it simply).
Don't stop playing with C#, but DEFINITELY learn Delphi. You will be a better Windows programmer for it.
I was mostly a self-taught Delphi programmer, although I did have 3 co-workers to bounce ideas off of. The 2 main sources I used to teach myself Delphi were the Delphi Basics website and the About.com Delphi site (which is an awesome resource for all levels).
I think this beginner's guide (from About.com) is a GREAT place to start with Delphi. Not only that, but once you get through it, make sure you check out some of the other really cool stuff on the site that will make you love using Delphi:
- Write a remote screen capture utility with Delphi
- Hiding from the Task List, Disabling Task-Switch, Remove From Task Bar, ...
- Disable Task Switch, Start Button, Ctrl+Alt+Del ... and much more!
- Get Notified When a file gets Created, Renamed or Deleted
- Get Notified About Changes to the Attributes or Contents of Registry
- A free Network (Internet / intranet) Traffic (download / upload) Monitor
- Exchanging Data over the Network using Delphi
- Sending / Receiving Record Data and Raw (binary) Data Using TCP Connections
And don't forget to download the JCL (Jedi Code Library) and the associated "visual" components known as the JVCL (Jedi Visual Code Library). You can download a single installation package for the JCL and JVCL here.
One more thing, another great resource if you are new to Delphi is Marco Cantu's free "Essential Delphi" PDF. It is from 2002, but it is a great primer and introduction to the language and IDE.
Delphi's advantages:
- Relatively easy to learn, drag-and-drop gui building
- Highly forwards compatible. I work on a 2 million line delphi app, and it has been easy to port it forwards across delphi 4 -> 5 -> 2006 and now to 2010. There's no other development platform I'm aware of that has such long-term compatibility.
- Easiest way of building native windows apps, probably by an order of magnitude. Yes, it's easier than any tool microsoft sells. Delphi was compared more with VB than C++, even though in capability it's close to C++.
Delphi's disadvantages:
- ObjectPascal's syntax is not for everyone. I've never liked it, even if I can admit it is readable.
- Pricey
- No garbage collection. It's as easy as it can possibly get to manually manage memory, but you still have to manage your own memory.
- No 64 bit support yet (they're working on it).
- Buggy IDE (at least in 5 and 2006, haven't worked with 2010 yet)
Sometime I see post on SO with a Delphi tag so people must actually still use it.
Yes. There are some countries where Delphi community is big and still alive. =) Netherlands, France, Russia, ...
I am curious how does it compare to something like C#? Can it basicly accomplish the same results?
That's for sure. Delphi is one of the most mature RAD IDE for Windows. Also you have VCL plus large variety of 3rd party components, relatively easy Databases programming model, ...
But there are some disadvantages:
- "Faulty visual programming". Beginners tend to mix UI code and application logic. IDE encourage such strong coupling.
- There is no GC. It's so 90s. =)
- "Unportability". Suddenly Windows-only.
- Obscure prospects. Frequent resales, big price, lack of up-to-date free version (like VS Express).
Response to Mick's comments.
Because it's FUD.
And what about this?
Delphi and the VCL (Visual Component Library) will teach you very good principles of software design
I'd definitely consider it a good language to learn
The benefit of Delphi is that the programs are native...
It is a great language to learn.
Why you think Codegear sell 1 million dev tool licenses to Russia !
Not FUD? Simply because they are talking about advantages. But when someone start talking about disadvantages he start talking FUD things by definition. =)
And no GC? Please, then you must criticize nearly every major programming language without GC including C++ and C.
And do you think it's too much for me to do that? GC becomes standard memory management technic not only for application software but for system software too. Please look at Go, for example.
It also isn't "unportable". You can target FreePascal and use the open-source Lazarus IDE and write Object-Pascal on Windows, Mac, and Linux.
It's not Delphi. Did you ever try to port big Delphi project to Lazarus?
Also, Embarcadero has "Project X" on their roadmap, which will bring true Delphi to Mac OS X and Linux.
When "Project X" appears not on paper, then we'll talk. And in the meantime it's FUD. =)
One of the advantages of previous versions of Delphi (D1-D2007) was its super fast compilation. Give it a 10 million lines of code project to build. It wouldn't take more than 5 seconds to build an exe in most cases! When I started programming in Delphi, I used to think that the project is not compiled at first build and press the build button five more times!
But that advantage doesn't apply in later versions of Delphi(D2009-2010), because they switched to MSBuild system.
However, Delphi is still our programming language of choice. That would continue until C# is able to produce app binary that performs like a Delphi app, and output self-contained native code binary!
Yes! there is no other easy as delphi. During my collage, I was having hardtime understanding C#, C++ but as my instructors assign project to us and said any language. and i try myself to study delphi and it was so good! my project was the best off all. hehehe I am now delphi adict. delphi is fun for me.
not only that, compiling is fast run independently (no need for .net) easy implementation code structure are easy to memorize it has wide function easy to create your own components
There is never any harm in learning anything. Last time i checked delphi is the 10th most popular language in use.
Lots of opinions... Subjective-C, anyone? :) I usually dodge opinion threads, but after all, it's a question I can answer confidently. To keep it factual, these are its properties:
- logical and strict syntax and organization
- closer to 'what you read is what you run' than other languages. No hidden stuff happening, no need to read between the lines or squint and wondering what the code does that you're reading.
- I've never messed up a pointer in it in my life ;) (been using it since 1999)
- a debugger that does its job, much closer to the ideal than most other IDEs I've used.
- the 'interface builder' looks a bit clunky and is a bit behind when creating luxurious GUIs, but sensible and very productive.
- the help system is one of the best I've used, when it comes to quickly finding topical explanations with helpful links and lucid examples.
- the end result is an application that is trouble-free, both for ancient and future Windows versions.
As a side note, you can also code c++ inside Delphi, or use inline assembler if you have the need (and will accept the consequences).
There are lots of aspects that you would like to not be a part of a programmer's job, such as cryptic or illogical run-time errors, platform (OS version) compatibility issues, stuff not loaded yet, dependencies, etc. With Delphi, you extremely rarely have to worry about a single of those issues.
If your goal is to quickly write Windows apps (and whatever Linuxes Delphi supports), Delphi makes the path from empty source file to "single file app that works for everyone" very easy and short. If that's your goal too, I'd say go for it!
I'm a big fan of all languages by Mr. Wirth. They are specific, do their job precisely, and the result is a trouble-free, exact app. I still use it off and on after I quit as a Delphi programmer, to code small useful applications quickly for my small company's use.