With the free Turbo Explorer line, Borland brings programming to the masses. Each of the four Turbo Explorer ‘personalities’ targets a different combination of programming language and platform: Turbo Delphi and Turbo C++ for Windows, and Turbo Delphi and Turbo C# for .NET. There are over 200 components for building programs, but the abundance of features may be overwhelming to new users.
I’d have to say Cocoa is probably the best GUI toolkit/environment I have ever worked with, and I had significant exposure with Win32 API, Java Swing, and GTK/GNOME. A lot of what this article talks about comes pretty standard with Cocoa. Cocoa has a bit of a learning curve, but the API, language, and tools (i.e., Interface Builder) fit together very well. I wish more developers would consider it. Even if you hate Xcode (I do), it is possible to write Makefiles that build OS X apps properly.
A lot of what this article talks about comes pretty standard with Cocoa.
Except for Borland did it first and is better.
Um.. are you sure about that? Next was around in the late 80’s. They had certainly released NextStep well before 1995. Delphi was released in 1995. AFAIK, InterfaceBuilder was always part of NextStep.
In fact: http://en.wikipedia.org/wiki/Interface_Builder
samad, I’ll have to disagree with you regarding Cocoa. I’m fairly new to Cocoa, but here’s my take on it.
I think Cocoa is outdated. Objective C is basically Smalltalk C. There was a goal to create an Object-Oriented C, and at the time, it was thought that Smalltalk was the epitome of object-oriented”ness”. So they added a bunch of smalltalkisms to C and thus begat Objective C. The problem is that there’s been a lot of advancement in Object Oriented thinking since then, and Objective C has not kept up with the times. I think the .NET runtime and framework blow Cocoa away.
I did see that Apple is introducing garbage collection to Cocoa with Leopard, which is a step in the right direction (although I kind of like Cocoa’s “autorelease” mechanism). The problem here is that while the Leopard’s Cocoa runtime might support garbage collection, the Cocoa API does not, so it seems that it’ll only be useful in code that doesn’t use the Cocoa API. Similar to how the runtime supports exception handling, but the API doesn’t, so nobody actually uses exceptions.
Cocoa’s lack of namespaces also needs to be addressed. I don’t even like InterfaceBuilder, even though many praise it. It seems overengineered to me and clunky.
As for the API itself, the newer “NS” apis are pretty clean, but the old “NS” apis that came from the NextStep days are a mess with horrible documentation to boot.
Caveat to the above: I only started Cocoa programming as a hobby during the last year or so, and am not an expert. So feel free to correct me and call me an idiot. 🙂
“I don’t even like InterfaceBuilder, even though many praise it. It seems overengineered to me and clunky.”
Totally agree with you there. Tried it for a while then gave it a miss. It’s about the only programming tech I gave up on because I simply don’t agree with how it works, it’s just too over the top. All this dragging little connectors about and whatnot seems daft.
You’re definitely right about Obj C being outdated in many ways (i.e., no namespaces, lack of exceptions). However I think Obj C’s loose bindings benefits the realities of GUI OO programming. Obj C allows you to query an object’s methods and members dynamically during runtime. You can even write a class that impersonates another class during runtime. Qt has its own C++ preprocessor (moc) in order to create a somewhat more looser bindings environment, and thus easier to program, via signals and slots.
As for memory management, I think it’s a matter of preference. Complete garbage collections almost removes the need for the programmer to handle memory management. But it comes with a cost: performance and space. Some programmers want complete control over the memory and like to manually allocate/deallocate objects. Obj-C is sort of a middle path, where using release, retain, and autorelease allows some degree of the programmer’s intervention in the way memory is handled with little performance impact.
WRT the “lack of exceptions” criticism of ObjC:
http://developer.apple.com/documentation/Cocoa/Conceptual/Objective…
I’ve used exceptions myself quite a few times…
Lack of namespaces is indeed a bit of a flaw in ObjC. Personally I like the relative simplicity of ObjC when compared to some other OO languages. As you point out the loose bindings and general dynamic nature of the language does indeed make it a good fit for the realities of GUI programming.
I am personally very interested in seeing how garbage collection works in ObjC 2 (on Leopard). The existing release/retain/autorelease mechanism works pretty well (better than malloc at least 🙂 ) but it does take a bit of getting used to.
Er, I don’t want to be rude, but was this really a review or merely just marketing? I mean, nothing against Borland’s developer products, but this sounded awfully like copy-pasted from some product prospectus
and I had significant exposure with Win32 API, Java Swing, and GTK/GNOME.
You have chosen the worse Win32 toolkits to use for windows programming, Java Swing? I mean come on, Borlans tools are milles ahed of any you just mentioned.
I look forward to this. I was interested in dabbling in Delphi a couple years ago, only to find that the cheapest Delphi distro was $1500. Borland did offer a “personalized” Delphi for free, but it only came on a CD packaged with some obscure European magazine. I’m glad Borland saw the light and is appealing to hobbyists again (maybe it took Microsoft’s Express line to wake Borland up).
Edited 2006-09-05 21:23
There has never been a RAD development which has come close to Delphi. It’s a very powerful development environment, which can produce the fastest win32 executables.
Ive used visual studio and a few other IDE’s (including xcode) and for me personally i still think that the delphi ide allows me to produce applications quicker.
Im very pleased that Delphi has come back to the development market, in the same grass roots approach as it’s forerunners (turbo pascal and delphi 1 – 3). The org delphi’s were very powerful, well made and a pleasure to use. It was only in the later versions things started coming apart.
Borland to Inprise created buggy IDE’s (delphi 4), the last stable version i used was 6, i just couldn’t use any higher 7 – 2005, it was this period which gave delphi a bad name, pushed the remaining developers into the arms of Microsoft with Visual Studio.
I have high hopes that these Turbo Tools will attract student’s and hobbyist’s as new users, but also i hope they pull over a few of the switchers from VS back to delphi (i know this will be the case if any VS dev’s are creating Win32 apps, i don’t think it will pull any dev’s working on .net or web projects).
I have high hopes that these Turbo Tools will attract student’s and hobbyist’s as new users
Ya know, I’m a Windows guy and I’ve been using VB6 for years as a hobbyist, developing little utils for myself. Since VB6 is pretty much dead, I’ve been thinking about moving on. I’ve given Delphi some thought, but given the nature of Borland, I have to wonder if Delphi will still be around a few years from now, or will it go the way of Kylix? Pascal is not quite like C++, Java, or C# … I mean, if not for Delphi, then what else is there in the Pascal arena?
Edited 2006-09-05 22:43
I mean, if not for Delphi, then what else is there in the Pascal arena?
You can use FreePascal, which uses an Object Pascal that is very compatible with Delphi’s language. FreePascal runs on many different OS’es.
http://freepascal.org/
Borland’s C++’s compiler has long been a classic, but behind the times and unmaintained. Does anyone know if this compiler has been improved and any is more compliant to standards, or is it the rusty old Borland compiler?
Yes, It is up to day and improved.
None of the other solutions mentioned in the comments even come close to Delphi in terms of productivity and ease of use, not even VS 2005 is as easy to use or productive as even Delphi 5 which is 7 years old.
Delphi also blows VS away when it comes to database application development, you can write full featured database apps in Delphi with very little code, while in VS you have to write tons and tons of code. Another area where Delphi shines is 3rd party library/component support, go to sourceforge once and do a search on Delphi and see how many hits you get, it’s impressive 🙂
It’s just a shame so many IT managers simply follow the MS bandwagon without ever realizing Delphi is the best.
I have used Delphi all the way back to version 1.0 in WIN16. The VCL is one of the most enjoyable, and easy to use, libraries I’ve ever seen. Very feature full.
It does suck that Borland chose to cripple the free version at the visual component creation and registration level, since that is imo what has always made Delphi so flexible and useful.
I switched earlier this year from VS2005 to BDS2006 using Delphi and I have to say its so much faster and less buggy to use than VS. Ive never programmed Delphi before this and it was very easy to learn and get up to speed quickly. I just hope this does take off because I really think its a nice ide and app developer for non-net apps.
The 3rd party apps make a world of difference as well.
TMS Softwares AdvStringGrid is by far the fastest, most versatile grid Ive ever used. ProfGrid is about as equal with awesome built in formulas like excel’s. Teechart Pro is also a very excellent charting package.
This comes from a guy that used ComponentOne’s Flexgrid and Dundas Charts. These controls are just way faster and more feature packed than even these ones period.
Too bad they didnt have something this good in Linux. Really, when you can drag and drop and have an app up quick doing data analysis/charting, this is the bomb. In a production environment its very awesome for the quick turn arounds.
Edited 2006-09-06 00:39
there is actually another program called lazarus w/c is an IDE very similar to delphi. it uses freepascal as underlying language, that can be compatible to borland pascal. it’s open source and nearing version 1 release.
those interested in turbo explorer may also want to check lazarus (www.lazarus.freepascal.org), as its code it has a strong advantage on portability, since freepascal can compile the same code for a different number of OSes (Windows, Linux, Mac, etc).
i think using both turbo explorer and lazarus at the same time can be complementary, as lazarus has the potential of being more feature rich than the free version of turbo explorer, while turbo explorer can be a good way of learning how to do things the pascal way, w/ it’s more reliable ide and better help files.
Last time I checked Lazarus IDE didn’t support copy/paste from external applications. Devs response on the forum was “dunno when we’re gonna fix this”. Has this changed? I mean, what’s the purpose of IDE when you can’t paste anything into it, say samples or code snippets?
Last time I checked Lazarus IDE didn’t support copy/paste from external applications….Has this changed?…
yup, it has changed. copy/paste is now supported. moreover, lots of bugfixes has been made, though a lot are yet to be done as well.
more so, in comparison to turbo explorer, lazarus is able to freely add in components. for a moment though, i think i’m going to check what turbo explorer free edition has stored this weekend. as a hobbyist who prefer the pascal language, i’d say these two are great to be at hand
Don’t forget RemObjects’ chrome.
You just can’t install them in the component pallet.
You can create and use them in your code at run time.
you simply have to add the correct units to the uses list.
For exampe you can easily use Synpase(http://synapse.ararat.cz/) for TCP/IP programmming like so:
uses blcksock;
var
sock:ttcpblocksocket;
response:string;
begin
sock:= ttcpblocksocket.create;
sock.connect(‘bla.com’,5432);
if sock.lasterror = 0 then
begin
sock.sendstring(‘bla bla bla’+CRLF);
//wait for a response
response:=sock.receievestring(5000);
end else
begin
//error occured,lets see it
showmessage(sock.lasterrordesc);
end;
end;
The point here is you can use most 3rd party components with a little extra work. You would also have to creat the event handlers by hand but it can be done.
It’s good to see Borland getting back to what made it an up-and-coming development company–inexpensive, strong software. I’m just hoping it’s not the latest in a long string of schemes to get back to a stable business.
Going back to the days of CP/M, Turbo Pascal filled a need for all of us who had been using some BASIC interpreter or some version of UCSD Pascal. For $50, you got a good, fast compiler that produced native code and worked pretty well. By version 3.0, they’d included a menu and the first commercially-available IDE.
Seeing Pascal and C++ in inexpensive versions (no longer free) that are hopefully well-supported should move more schools and hobbyists to Borland. It’s good to see that they’re embracing .NET as well because the world could use some sanity there, as well.