Danny Thorpe is the chief scientist at Borland Software, and was part of the original team that developed Delphi. In this interview Thorpe talks about Delphi, Kylix, and the future of working with the Mono project.
Danny Thorpe is the chief scientist at Borland Software, and was part of the original team that developed Delphi. In this interview Thorpe talks about Delphi, Kylix, and the future of working with the Mono project.
From the interview:
“We have Mono beta testers on our Delphi for .NET test team to make sure our .NET code continues to run on Mono. The politically sensitive part would be how much of that do we promote and market to the point where Microsoft would then be concerned.”
That is why Mono’s industry support will alywas be in the shadow of Microsoft.
…be something to do with the fact that it’s 3-4 AM, here in Europe anyway
Yeah, Sunday night isn’t always a raging time on tech news sites. I just happened to noticed the story as I glanced over at the new blam I installed earlier. I wouldn’t have even looked, buy my playlist ended in muine. I’m sure I’ve heard about this Borland/Mono relationship before. Ah, yes, it popped right up in beagle. I’ll have to make a note about this in Tomboy. Mono is surely going to die.
Borland was never much of a contributer to the open source community. Firebird was a fluke. Kylix was a buggy piece of shit that turned into instant abandonware – so much for trusting corporations.
If Borland wants to support Mono, it won’t be because it’s open source, it will be because it runs on Linux, OS X, BSD… Windows may last for as long as the desktop computer lasts as a metaphor, but it’s not the only game in town. The .NET framework is really the platform of the future on Windows and Borland knows it and has already adjusted. Mono just allows Borland to cover its bets, to allow them to have the advantages of Kylix (cross-platform development) while having none of the disadvantages (platform-specific binaries, duplication of effort, only 32-bit Linux x86 support). Plus, other people are doing most of the work – all they have to do is help with the debugging. Any Windows development tools vendor (other than Microsoft) would be stupid to not be testing Mono.
At this moment the Kylix is the best multiplatform development environment unser linux for business software. Not too good, really buggy (because it is based on a very old wine and Qt version) but there is not any better. Qt/C++ is expensive and dumb, Java based solutions are slow and ugly (swing) and weak (no databindings, primitive java language, etc).
I had to go to this site .
http://www.gotmono.com/docs/index.html
I don’t get it.
I have NO clue to what most of the programs in my mono bin do.
One of the biggest surprises to me was how vocal and aggressive certain portions of the Linux market were to not wanting other tools. They were saying things like Why are you bringing that Delphi stuff over here? We don’t want that. Get that stuff out of my backyard. Emacs and C++ is all anyone ever needs’, and that was disheartening
I don’t think anybody is surprised there. I guess zealots will be happy with crappy tools made for the early 80s. If I was Borland I would’ve said screw ’em too.
@LC
Try this to see how ugly swing can be : http://www.xerto.com/imagery.php
Stop XP theme engine and you’ll see how this product is beautifull
And about spped ? Hum, like anything else, its a question of how much you know about java… There is many benchmark over the net, have a look before saying anything about java speed.
But not too scared to keep making dumb acquisitions for too much money.
Delphi is a great product. But what Borland needs to do is come out with a BASIC.NET product that would complement it.
Add a few more interesting products and Borland would be in the race again.
So why do they call a software developer a scientist?
Just curious – I don’t see his academic credentials listed anywhere.
I don’t think anybody is surprised there
I don’t think either.
Most of the developers on the target platform were used to other tools and liked them and the few new ones who recently switched from using Delphi on Windows were getting a product that was weak compared to what they used to get.
in the real days of science, you didn’t need “credentials” to be a scientist.
of course the people of today think science = “worked as a slave to some idiot in academic for years and earned his ph.d”.
i think danny with his excellent knowledge and skill of what he does makes a fine “chief scientist”.
If the work you are engaged in is covered by intellectual property laws(in particular patents) and is not *publicly* (ie. freely, at zero charge) available for peer review, what you are doing is not scientific and is of no service to science and the ideal of mankind represented in scientific knowledge.
Alright, you can stop linking to that Java program now. So what if there exists one particular Java program that looks ok. 99.99% of them look and behave much worse.
The chief architect of Delphi is also responsible in a large part for the architecture of the .NET framework and C#:
http://en.wikipedia.org/wiki/Anders_Hejlsberg
So yeah….NET is probably Delphi Take 2. Before y’all crow too quickly about how much Delphi sucks
I thought it was a pretty good article. It’s nice to hear from someone who speaks directly rather than just spin and marketing.
One of the biggest surprises to me was how vocal and aggressive certain portions of the Linux market were to not wanting other tools.
That comment was interesting. But what I really wondered about was why Borland even cared about pissing off Microsoft. I mean the opposite certainly hasn’t been true. Borland used to have a much stronger position in the developer’s tools market, until Microsoft Visual Studio pushed them aside. What more can Microsoft do to Borland, except tweak the OS to look for Borland products and disable them? If I was in Borland’s position I would definitely be looking for new markets.
Don’t get hung up on his title, he probably didn’t choose it.
Working as a slave does not qualify one to be regarded as a scientist. And, yes, throughout history, one needed to have credentials to be regarded as a scientist, although there are numerous exceptions, including Albert Einstein.
Danny Thorpe may have excellent credentials as a programmer, but what are his credentials as a scientist? How has he furthered scientific knowledge?
I am a scientist. PhD in space science, as a matter of fact.
A veritable rocket scientist. I have also developed software for the last 25 years. I have headed software projects and delivered software to some important customers, including the DoD.
So forgive me if I take exception to some programmer hack calling himself a scientist.
Personal definitions of words to coincide with your political views are irrelevant.
Being co-author of Free Pascal, this article requires a comment from me. I would like to point out that “competition” has to be placed between quotes as Free Pascal and Delphi do not compete currently, instead Free Pascal and Delphi are both powerfull tools that many Pascal programmers install together on their systems. The tool that suits a job best is used and these targets currently do not overlap very much.
My main surprise in this article was the lack of notion of anything about 64-bit support. Which is very interresting as it took us 5 years to build a portable compiler. Certainly one can do it faster if one has more programmers and concentrates only on x86_64 instead of a truly portable compiler. Yet it will interresting how flexible the Borland compiler is. IMHO Borland has already wasted its time by concentrating so many resources on .NET.
Certainly, with the industry support behind it, .NET will be a success. But it is a hype. It is no accident that Microsoft has decided to rewrite large parts of Longhorn with traditional tools, because .NET did not live up onto its promise.
But IMHO it is very hard to compete against C# as you need to provide people enough advantages over C# before people will consider leaving the safe path that everyone walks on.
This is much harder than competing against C/C++. The advantages of Pascal against C/C++ are obvious and many programmers will find out that they are more productive in Pascal than in C.
As a Pascal compiler, this is IMHO the whole reason of your existance. You are a language which is fully comparable to C++, only cleaner and more powerfull. You need to provide better programming tools than people do have with C++ and then there is automatically a large potential user base for your compiler.
And this is what Borland did wrong with Kylix. Kylix is unsuitable for, very important, console applications under Linux. Free Pascal is a much better options here.
If you build GUI apps, Kylix requires you to ship the equivalent of a complete Linux distribution in shared libraries with your program. Users hate this, programmers hate this.
In other words, you have failed to build a powerfull programming tool for C++ programmers to consider. Yes, this is that serious that they won’t even consider using Kylix for serious jobs.
And I’ll conclude this comment with a message to Borland: Forget about Java and Eclipse. Java programmers, a very small amount of the open source developer, won’t even consider switching to Pascal. This is not the kind of users you are targetting at.
>All software made by Borland is buggy
All software is buggy. Especially under linux…
>Kylix was not better than C/C++, very buggy,
>proprietary… i.e kylix sucks
Kylix is not a language, it is a development environment. Not better then C++ – it is also only a language. If you want to create application you will need class libraries for database connectivity, widgets, printing, etc, and IDE and gui builder and documentation…
>LC, please note, that if you want to make opensource
>software, QT is open source… if you want to make
>commercial programs… QT is commercial
I want to make commercial program – and the commercial Qt is not powerful enought and too expensive if you compare to the M$ visual studio. Yes, M$VS is not multiplatform, but if you want a commercial application the price of the development is more significant then the 5% of the users who are uses linux.
>But there is GTK+ that is a good alternative to QT…
>then if you make commercial software, you may want
>to use gtk+
All right, lets try to create application with more then 100 complex, data-driven forms, many reports, etc with gtk+/glade/anjuta combo…
I consider science a state of mind, and a scientist somebody who possesses (or is possessed by) this state of mind. Notice how this has little to do with credentials. But there are definitely other definitions of what a scientist is. Since mister Thorpe’s position as “chief scientist” was probably bestowed upon him by somebody from marketing, I would guess their definition is something along the lines of: A person that talks funny.
I have no faith in borland and its future is dependant on microsft handouts so I cant see Delphi having much of a future either other than as a .Net/Microsoft crony.
Its sad but the future of Delphi is now realistically in the hands of the freepascal team whose excellent open source, multi platform delphi compatible compiler is our last hope against the tyranny of these grossly inefficient and badly designed managed languages (aka C# and Java).
One of the biggest surprises to me was how vocal and aggressive certain portions of the Linux market were to not wanting other tools. They were saying things like Why are you bringing that Delphi stuff over here? We don’t want that. Get that stuff out of my backyard. Emacs and C++ is all anyone ever needs’, and that was disheartening
I don’t think anybody is surprised there. I guess zealots will be happy with crappy tools made for the early 80s. If I was Borland I would’ve said screw ’em too.
>
>
Never heard the expression “If it ain’t broke,don’t fix it” have you?
How is Gambas ( http://gambas.sourceforge.net/ ) compared to Delphi?
Used to use Delphi heavily ages ago… lets see… probably more than 6 years ago, but Borland just didn’t care, and eventually other support died off.
BTW, Does Gambas have .NET / Mono support?
gambas is a “vb like tool”
gambas is not as powerful as vb or Delphi
gambas is very limited
kylix was very expensive and a lot buggy
kylix was not for opensource community… but for commercial application…
which company will use mono to do commercial product?
it will surely use ms .net … not mono
futur release of jbuilder will be builder over eclipse… maybe same thing for kylix or a new product who use mono?
it is amusing to hear wannabe said java is slow….
Basic was by design targeted to be easy to learn. Teaching people to program well was something that wasn’t considered in its design. Speed was not, and features people need to write proper software were absent as well. In other words, in order to make people learn programming, Basic was designed as toy.
Pascal was also designed to be easy to learn, but also to learn people to program well. Pascal was designed to be able to write proper software with it, allthough it had to be extended to be really usefull (which all serious implementations did) and speed was kick ass. In other words, Pascal was designed to learn people proper programming as was designed as a professional language.
This does not mean Basic tools are bad by definition, but they cannot be compared to the tools that use powerfull compiled languages. So, do not compare Pascal with Basic. Compare it with C.
And definately go Lazarus if you need an open source GUI development environment.
@Daniel Mantione
sdlBasic is a basic for making simple games in 2d (http://sdlbasic.sourceforge.net)
And yes, I’ve a basic pascal knowledge…
Kommandant Taco:
Liberal hippie new aged hogwash. Go smoke some dope you poltroon.
While his post may not have been entirely accurate, it’s closer to the reality than your childish dismissal would indicate.
“Science myth #3 — science can only be practiced by scientists
Contrary to this commonly held belief, science is the moral property of all thinking people — it is an indispensable tool for sorting out reality. Practically any activity can benefit from the application of scientific reasoning skills. Even automobile mechanics regularly apply a kind of science to their work — they replace one part, then replace another, but never two at once, so that a particular result can be traced to a single cause.”
> All software is buggy. Especially under linux…
Half right. What the hell does the host operating system have to do with anything? Oh wait – it’s not Windows, so it must be crap, and that infects the rest of the system, right?
> I want to make commercial program – and the commercial Qt is not powerful enought and too expensive if you compare to the M$ visual studio.
Not powerful enough? Have you even looked at Qt, much less actually used it for anything? For C++ development, it kicks the crap out of anything Microsoft has to offer. And no, Visual Studio is no equivalent to Qt – it’s an IDE (one which the commercial version of Qt integrates with quite nicely, in fact), whereas Qt is more like MFC, but much better. What exactly is it that you can’t do in Qt that is so easy in Microsoft’s tools?
If you mean “Visual Studio’s GUI designer is better than Qt Designer”, then that’s pretty much a matter of opinion. For C++, Visual Studio’s GUI designer is basically garbage. For C# / VB.Net, it’s almost identical to Visual Basic, with minor differences mostly because the underlying programming language is different. The actual toolkit (SWF) is garbage too – it’s a minor improvement over Visual Basic, while keeping just about all the problems that VB had. Qt’s way is just different, and (in my opinion) much cleaner and more maintainable, even though it’s slightly less obvious to begin with. If all you know is Microsoft tools, I can understand why you might have problems with it. Similarly, if you only ever use Windows, you might have trouble understanding why you’d even need layout managers and so on, but on other platforms GUIs can vary a lot, and being able to automatically adapt to the specific metrics is really useful.
As for Java / Swing being slow and ugly… Rubbish. There is one major mistake that just about everyone who writes Swing apps makes – you should never actually do any work inside an event. Doing so locks up the UI thread, causing the UI to lock up, or at least to lag. If you use worker threads to handle the actual work, Swing GUIs are really quite fast and responsive.
You can make a Swing app look however you want, including mimicing the native Windows LnF if you wish. It’s not quite perfect, but considering that most Windows apps go out of their way to look unlike a normal Windows app, I don’t think anyone is really going to noitce. Alright, there’s no anti-aliasing at present, which might be annoying for those with an LCD screen using sub-pixel hinting, or for those not using Windows (where anti-aliasing is the norm, even on CRTs), but your typical Windows user probably won’t notice that either.
Unless I missed it, nobody said Delphi sucks. They said that Kylix – the linux implementation of Delphi – sucks. Delphi itself is one of the great, under-rated development tools of the age. But instead of evolving it with things like GC and more complete VCL classes, Borland goes chasing after .Net, making Delphi just a syntactical sugar replacement for C#. Who needs that? The tiny group of Pascal developers unable to learn a new language?
Borland would do much better by offering a native-compiled version of Delphi/.Net, if legally possible. These JIT compilers are an idea that badly needs a modern alternative – up-to-date native compilation like that offered by Excelsior and GCC for Java.
Funny to see this as I just installed my Delphi 2005 professional this weekend. I had been using Delphi 7, and have yet to see how the migration of my projects goes. Still, what little playing around I’ve done seems alright – I’ve gotten a Managed DirectX program to compile and debug on it alright. And the box is nice looking.
My biggest concern is the price. You can get Visual Studio for less, so it really seems to target only existing Delphi users looking to upgrade. As an existing Delphi user I should point out that I quite like C# – and if I didn’t already have Delphi projects then what would D2005 hold for me?
Borland was originally about making cheap and userful developer tools…thats what I want to see is a Delphi that is competitively priced. A Delphi that attracts new users. A Delphi that is proud to partner with the Mono Project.
There needs to be a low end edition – like the Personal edition of Delphi 7 – only allows for commerical apps. Sort of a $200 to $300 range.
Of course he may well be a scientist. Heck, many renowned colleges and universities offer computer science as a major. There is definitely a science to the inner workings of computers.
Many subject areas in computer science are above and beyond programming. Hell, many programmers these days wouldn’t last thirty minutes in a compiler theory class, talk little of write their own compilers.
Realistically I think Borland must have worries about Free Pascal and the Lazarus IDE project.
I consistently use both now and I’d never bother paying out money to Borland again.
While I personally don’t agree with some statements Daniel made about Pascal being more powerful then C++, I totally believe that each has their own place, and both are quite capable at getting jobs done.
I’d like to thank the FPC and Lazarus teams for GREAT WORK!
Little hobbyists projects don’t pose a threat to Borland. It’s all about Microsoft.
Microsoft would rather just give away their tools if they could, but because of legal action and spoiling “the ecosystem” they need to keep Borland around. That’s why this guy was talking about them being all worried about offending MS.
Maybe if there was some kind of desktop market for linux or even if there was a standard toolkit on linux they wouldn’t be so dependant on windows, but for now and long into the future it’s all windows.
Daniel Mantione wrote:
This does not mean Basic tools are bad by definition, but they cannot be compared to the tools that use powerfull compiled languages. So, do not compare Pascal with Basic. Compare it with C.
@Daniel Mantione
nowadays if you talk about the characteristics of a BASIC programming language , you have to go the extra mile and look at compiled BASIC languages and not interpreted.
Maybe you haven’t noticed, but there are real BASIC compilers out there – and not only commercial ones.
Take FreeBASIC as example, it’s a real compiler and the emitted code is (not optimized as a established C/C++ compilers) pretty comparable in speed.
This said, you could compare BASIC compilers with C/C++ or PASCAL compilers, you just need to skip interpreted BASIC’s.
Somebody a while ago posted, that java was ugly looking and did not even have data aware controls, compared to Delphi.
Well, there seems to be some misunderstanding.
First of all, Data aware controls, are something very specific, which is not the scope of swing, secondly, they are not really that good, you can get certain results very fast, but you basically break a clear MVC distinction that way, thus in the later nineties people moved away from this stuff, towards other models which are more flexible (IOC Data aware containers for instance)
If you want to have this stuff in Java, JDeveloper still has them. The Sun Studio Creator and the oracle tool already are using IOCed data sources, which are more flexible.
As for the look, the original poster was not aware, that Swing is skinnable since day zero, you can skin Swing any way you like, and most modern apps do.
Also a good UI is heavily dependend on the UI designer, thus many VB and Delphi UIs I have seen are problematic as well, because they did not implement anything regarding resize (which Swing delivers out of the box thanks to the layout manager mechanism), they are fixed to a certain font size, which breaks the entire UI once you move from small to big fonts, etc…
A good UI really depends on the designer behind it and only to a certain extend on the technology used. I have seen excellent UIs done in Swing, Delphi etc… but also the worst examples done in this technologies.
What is left besides that is Borlands derivation of Object Pascal. A Beautiful but somewhat talkative language, but it shows its age, it is heavily in need of a garbage collection system, which is rather mandatory for bigger systems (hopefully the .net version finally has a GC out of the box)
and an excellent UI designer which focuses too much on absolut layout, which is rather problematic in itself.
Having used both systems, I probably would not go the Delphi/Kylix way for a good platform independend program, there are too many problems involved with it, which systems like Swing and Qt already have solved a long time ago.
The functionality of the UI and if it looks good or not, depends less on which implementation language I use, but which tools the underlying lib gives me regarding resizing, relative control distances, how the look and feel is handled, etc…
And also having to implement a bigger system without some kind of GC is problematic in itself.
Modern Basics, i.e. Quickbasic derivates, are already a completely different language than the original Basic. They are still unsuitable for serious work. They do come with good development tools, like Visual Basic.
It is possible to change the Basic language even more, i.e. introduce strong typing, pointers, (real) object oriented programming etc. etc. You will have a state of the art language, but only it is as similar to Basic as Pascal is.
Therefore, you loose backward compatibility and wont be able to please a lot of existing Basic users. If you do keep backwards compatibility, you cannot extend your language enough and your language remains inadequate.
You can build a state of the art compiler for such a language that generates good code. Problem is, as to my knownledge, so state of the art compiler for such a language exists.
Ergo, Basic derivates are no option for most programmers.
By the way, I like a lot of things about Basic, but I also am very well aware of this catch-22.
Anonymous, it is useless to call yourself a “veritable rocket scientist” because you may very well NOT be a “veritable” one, or you could very well be but in any case saying that about yourself only represents scientific evidence for ego bloat on your part.
I think that anyone who in one’s life follows the scientific method systematically is a scientist, regardless of credentials. Even if you are entrenched in an university and written lots of peer-reviewed papers, this does not mean that you should think, like you do, that you are really superior to someone who has scientific knowledge and skills but is not actively associated with academia.
> IMHO Borland has already wasted its time by concentrating so many resources on .NET.
And you’ve wasted yours working on a portable pascal compiler.
> But it is a hype. It is no accident that Microsoft has
> decided to rewrite large parts of Longhorn with traditional
> tools, because .NET did not live up onto its promise.
Are you referring to them not writing them in C# to begin with?
> As a Pascal compiler, this is IMHO the whole reason of
> your existance. You are a language which is fully
> comparable to C++, only cleaner and more powerfull.
Yeah, the parametric polymorphism in FreePascal is leaps and bounds above that offered by C++.
> And this is what Borland did wrong with Kylix. Kylix is
> unsuitable for, very important, console applications under
> Linux.
Kylix was ridiculously buggy and expensive. Their major “flaw” was making a half-assed port of their development environment to a platform with an indeterminate future on business desktops. Since Delphi’s largest market is grouping together components for writing database-interfaces for the business market, if it’s broken and isn’t deployed there, then it’s pointless to waste huge swaths of money starting in the first place.
Focusing on “console” programs would have flushed the project down the toilet with the same speed. There’s no “I want to write less in Pascal” market to pay for development tools.
> And I’ll conclude this comment with a message to Borland:
> Forget about Java and Eclipse. Java programmers, a very
> small amount of the open source developer, won’t even
> consider switching to Pascal. This is not the kind of
> users you are targetting at.
There are orders of magnitude more open source programmers using Java than there are using Pascal. And open source developers aren’t especially big on purchasing development tools to begin with. They certainly aren’t switching to free pascal in droves. Maybe you have some more valuable business advice for Borland.
> And you’ve wasted yours working on a portable pascal compiler.
Hi troll!
Mine is used. Kylix is not.
People seem to forget that delphi is the best *desktop* development tool available (and it has been for the past 10 years).
No other programming language gives you *all* of the following:
1) High performance
2) Highly memory efficient (C# and Java really really sux here – 100mb ram wasted loading in the VM!)
3) Component based RAD (both C# and java got their beans from Delphi)
3) High speed compilation (10x faster than GCC)
4) Very clean code thats easier to learn that C style languages
5) Statistically code written in Delphi is more likely to work and contain fewer bugs than other C style languages.
6) Smart linking eliminates external dependencies and external runtimes yet produces smaller executables than equivalent code in C++.
In comparison Delphi wipes the floor with C# and Java which are effectively toy languages – never have I seen such wasteful bloat and inefficient use of memory in all my 10 years as an IT Consultant.
Being a scientist myself I looked it up: it’s any person who uses observation, experimentation and theory to learn about a subject. Hoo boy some exclusive club there, can’t call yourself or do that without apprenticeship and a union card.
First let me tell you that I very often use Freepascal and for some needs it is great. For others php and for some C# and a lot of bash. But somehow your comment lacks to be informative. It can be only translated to: I hate .NET, so everybody should hate it.
Sorry, but this “hollier than thou” attitude really pisses me off. Being so long in Pascal world in my life all I can say is that your comment is a pure example of the biggest bulls**t.
My main surprise in this article was the lack of notion of anything about 64-bit support. Which is very interresting as it took us 5 years to build a portable compiler. Certainly one can do it faster if one has more programmers and concentrates only on x86_64 instead of a truly portable compiler. Yet it will interresting how flexible the Borland compiler is. IMHO Borland has already wasted its time by concentrating so many resources on .NET.
More or less, looking from the other side you’ve wasted time by not concentrating on .NET or the features .NET provides. Some are really good, you know?
Certainly, with the industry support behind it, .NET will be a success. But it is a hype. It is no accident that Microsoft has decided to rewrite large parts of Longhorn with traditional tools, because .NET did not live up onto its promise.
Actualy even Mono framework is more complete than Freepascal and both are very portable, second if you look at the stability, all I can say is that mono is more stable than FPC (I use them both).
But IMHO it is very hard to compete against C# as you need to provide people enough advantages over C# before people will consider leaving the safe path that everyone walks on.
It is more or less that you hate everything C# and don’t wan’t to overstep D7 boundaries. At least your mailing list says so.
This is much harder than competing against C/C++. The advantages of Pascal against C/C++ are obvious and many programmers will find out that they are more productive in Pascal than in C.
Crap, sometimes I’m more productive in bash than in Pascal. It is the Tool and the Need that define where you’re productive and not even near to what you say. Being Pascal programmer and knowing a lot of pascal crowd the only thing I can say about them is that this is the most ignorant public when it comes to admiting that their tool is not always the best
As a Pascal compiler, this is IMHO the whole reason of your existance. You are a language which is fully comparable to C++, only cleaner and more powerfull. You need to provide better programming tools than people do have with C++ and then there is automatically a large potential user base for your compiler.
more powerfull, last fpc doesn’t have interfaces (refcount doesn’t work), doesn’t have generics, templates, macros and has very limited units for libraries. Just where are you more powerfull? The only thing where you’re powerfull, is when you’re bashing everything else but pascal.
And this is what Borland did wrong with Kylix. Kylix is unsuitable for, very important, console applications under Linux. Free Pascal is a much better options here.
Again, crap. What Borland did wrong it was that Kylix was half assed product (all I can remember from all three versions is constant crashing). Very limited comparing to Delphi and even worse used Wine and old versionof Qt (hell, I couldn’t even use special characters in our language without hacking my distribution) for some things
If you build GUI apps, Kylix requires you to ship the equivalent of a complete Linux distribution in shared libraries with your program. Users hate this, programmers hate this.
OO.o does that. Mozilla does that. People don’t hate them. But if one is lazy as Borland and demands that you provide libraries that are hard to find because they only exist in some museum because they are so old. Taken this with the fact that you can’t compile them for your self… you’re bound to fail to get your application working on XYZ distro.
This is what people like me hated and not what you said.
In other words, you have failed to build a powerfull programming tool for C++ programmers to consider. Yes, this is that serious that they won’t even consider using Kylix for serious jobs.
In other words you’ve failed to describe their reason where they failed
And I’ll conclude this comment with a message to Borland: Forget about Java and Eclipse. Java programmers, a very small amount of the open source developer, won’t even consider switching to Pascal. This is not the kind of users you are targetting at.
And a message to you. On your mailing lists there at least half of messages where people request new features (foreach has been requested how many times for now) but you always fail to even try to understand where
foreach (element in list)
is different than
for i := 0 to (list.count – 1) do
Let me spell it for you. One (foreach) can be threadsafe and one can’t. One is faster (for) than the other (btw using try… except is not an option here). The only reason that you dismiss it so long is because it is THE UGLY C# THING. But let me spell another thing: I can buy more speed next month (computers get faster every day), I can’t buy stability.
I won’t even talk about other things on your mailing list.
And one more thing. For your sake leave this “hollier than thou” attitude and bash over other languages, it is so zealot like and zealotry never made anything good. It is not that other languages are bad, it is just that you failed to see their good sides and possible use.
Problem with pascal started when pascal people missunderstod word strongtype and started promoting it for dumbtype.
Epilogue:
Don’t missunderstand me. FPC is great and I like to use it, it is your stand point that I don’t like and it pisses me off. But, only for some cases and some needs. And it will stay so until the FPC people realize that pascal is not everything and start cooperating with other languages.
> > And you’ve wasted yours working on a portable pascal compiler.
>
> Hi troll!
>
> Mine is used. Kylix is not.
Are we both trolls, then? Because I simply pointed your own gun at you, so we must both be the scum of the Internet. Your project ranks somewhere under SmartEiffel in being seriously utilized in the open source world, which in turn is somewhere around completely irrelevant. Compared to Java in open source, you don’t exist.
Personally I just think you’re a language zealot just the other side off of the deep end. Even Borland’s craptastic .NET support is more successful than FreePascal, despite being reviled by most Delphi programmers. That’s ok, I like a lot of fringe languages too, but I’m definitely not deluded-enough to suggest to Borland, which in all likelihood is going to die unless the European software market sustains it, or Microsoft keeps it alive for anti-trust reasons, that they target some nonexistent market.
First, sorry. But Borland migrating to .NET is the reason I just couldn’t not to undermine your comment.
People seem to forget that delphi is the best *desktop* development tool available (and it has been for the past 10 years).
It is not crossplatform, so partial desktop tool would be more correct. Desktop development tool for me means that I can make software for any desktop. And I still fail to see one good tool for my requirement.
No other programming language gives you *all* of the following:
1) High performance
2) Highly memory efficient (C# and Java really really sux here – 100mb ram wasted loading in the VM!)
3) Component based RAD (both C# and java got their beans from Delphi)
3) High speed compilation (10x faster than GCC)
way more than 10 times. Even .NET compilers are fast.
4) Very clean code thats easier to learn that C style languages
5) Statistically code written in Delphi is more likely to work and contain fewer bugs than other C style languages.
Personally I can say that neither is better in this department. It is just how familiar you’re in one language.
Having strongtype=dumbtype pascal is more bound and prone to errors when parsing (from or in) files and a lot other examples. Now, if we listen to this comment of yours, all we can say is that bash rules
6) Smart linking eliminates external dependencies and external runtimes yet produces smaller executables than equivalent code in C++.
About all points. And neither does Delphi, they are moving on .NET. You can expect that 2005 is the last Delphi compiler to still produce native code. As soon as you use .NET features you fail on all points where you said Delphi is good.
In comparison Delphi wipes the floor with C# and Java which are effectively toy languages – never have I seen such wasteful bloat and inefficient use of memory in all my 10 years as an IT Consultant.
Agreed. It is the main reason why I still try to avoid c#. Most of my work are server services.
About all points. And neither does Delphi, they are moving on .NET. You can expect that 2005 is the last Delphi compiler to still produce native code. As soon as you use .NET features you fail on all points where you said Delphi is good.
Exactly which is why we dont want delphi.net – it removes most if not all the cool unique features that makes delphi rock. I dont know whether Delphi 2005 will be the last to have a win32 compiler or not but it does not matter so long as freepascal takes up the slack. Freepascal is already good enough to be a replacement foe Delphi (it already serves as a replacement for kylix) in a lot of cases (though the IDE needs a lot of work).
First, I read fpc mailing list a lot. And my picture who is who in fpc development is pretty complete.
Exactly which is why we dont want delphi.net – it removes most if not all the cool unique features that makes delphi rock.
And then again I remember how you were moded down when proposing things like foreach, garbage collector and others????
Yours are one of the rare comments on this mailing lists that almost always get read by me. I can respect your comments because you show somewhat critical view on where pascal is and where it could be if one would look arround.
I dont know whether Delphi 2005 will be the last to have a win32 compiler or not but it does not matter so long as freepascal takes up the slack.
As for windows world. How long do you think MS will allow not .NET code to run. One positive view for you is that Longhorn won’t be .NET based. So, you gained few years. And then what?
Freepascal is already good enough to be a replacement foe Delphi (it already serves as a replacement for kylix) in a lot of cases (though the IDE needs a lot of work).
For me and my server services, more than definitely. I often find my self patching some bugs in FPC for my self, I often find my self translating header files, but the answer is yes. For me it is more than enough. All that I see on that department of mine is more than positive.
But from the desktop point:) No, you’re not. Until I can’t provide GUI in my native language (which is poorely supported in gtk1, it is more like yes you can on some distro if you shoot your left foot, but would you bother?) everything is not so shiny. gtk2 version hasn’t got any better from one year ago. That is why my desktop apps have moved on mono.
And then again I remember how you were moded down when proposing things like foreach, garbage collector and others????
For the record I opposed a garbage collector outright (they sux too much) and instead wanted some limited ref counting in objects. Delphi needs to be modernised without adversely affecting its performance/memory usage and that will require some thinking (personally I prefer having autovars which allow you to set a tobject to be ref counted).
But from the desktop point:) No, you’re not. Until I can’t provide GUI in my native language (which is poorely supported in gtk1, it is more like yes you can on some distro if you shoot your left foot, but would you bother?) everything is not so shiny. gtk2 version hasn’t got any better from one year ago. That is why my desktop apps have moved on mono.
Producing a native gtk2 IDE with a glade like form designer is on my to do list but first I need to modernise the language! (such an IDE will be incompatible with delphi and lazarus of course)
First let me tell you that I very often use Freepascal and for some needs it is great. For others php and for some C# and a lot of bash. But somehow your comment lacks to be informative. It can be only translated to: I hate .NET, so everybody should hate it.
No. The problem is I, excuse me, we, don’t believe in managed code, ok? There are various reasons for that, one is the false promise that JIT technology will solve all problems. Algorithmically there is no reason why JIT code is slower than precompiled code, there is allways the problem of the JIT that needs memory/speed as well. Second, despite claims that garbage collection requires no overhead anymore, I have yet to see a system with acceptable memory requirements.
This does not say that .NET cannot be usefull. It does say that .NET cannot be a replacement (as is currently communicated by .NET proponents, including Borland) for programming as we know it. It is this myth we’re trying to get out of the world, not .NET itself.
Sorry, but this “hollier than thou” attitude really pisses me off. Being so long in Pascal world in my life all I can say is that your comment is a pure example of the biggest bulls**t.
Hmmm… Sorry, but I’m afraid I’m behind what I said.
More or less, looking from the other side you’ve wasted time by not concentrating on .NET or the features .NET provides. Some are really good, you know?
Suppose we did concentrate on .NET. It is highly likely we would have had several less ports. The Mac port turns out to be very important, Mac programmers are jumping onto FPC to port their code to x86. x86_64 is another big feature that might not be in place. Backwards compatibility isn’t possible, people would need to develop FPC.NET code from scratch. No, that wasn’t realistic.
The decision not to concentrate on .NET was a risky one, but it was a very wise decision. For Borland the equation was the same. I hope their decision will turn out to be a wise one as well. Nothing does exclude us from adopting some features. I’m sure that will happen.
Actualy even Mono framework is more complete than Freepascal and both are very portable, second if you look at the stability, all I can say is that mono is more stable than FPC (I use them both).
I have looked at their compiler architecture and I was impressed. They have some optimization technologies that we haven’t yet implemented yet. I wasn’t impressed by their code generator. Overall their compiler looks like it can become a nice compiler. But it doesn’t look mature yet.
It is more or less that you hate everything C# and don’t wan’t to overstep D7 boundaries. At least your mailing list says so.
The D8 and 2005 features are heavily oriented towards managed code. As we won’t have that, D8+ compatibility is low priority. Usefull features will be adopted, I don’t doubt about that.
Crap, sometimes I’m more productive in bash than in Pascal. It is the Tool and the Need that define where you’re productive and not even near to what you say. Being Pascal programmer and knowing a lot of pascal crowd the only thing I can say about them is that this is the most ignorant public when it comes to admiting that their tool is not always the best
This is nonsense since Bash is not a language comparable to Pascal. Pascal should be compared to C, Ada, Forth, Fortran and perhaps D, but certainly not Bash. You should compare bash with tcsh, as these fall into the same category.
As of this, Pascal should also not be compared to C#, as they are languages for different purposes.
more powerfull, last fpc doesn’t have interfaces (refcount doesn’t work), doesn’t have generics, templates, macros and has very limited units for libraries. Just where are you more powerfull? The only thing where you’re powerfull, is when you’re bashing everything else but pascal.
Hmmm… Perhaps I’ll disappoint you, but I’m not impressed by the C++ STL. Did you ever look at what code it generates? Let’s get back to the basics of programming: strings, sets, properties, units. You use these features any time, and they really do improve the code.
Again, crap. What Borland did wrong it was that Kylix was half assed product (all I can remember from all three versions is constant crashing). Very limited comparing to Delphi and even worse used Wine and old versionof Qt (hell, I couldn’t even use special characters in our language without hacking my distribution) for some things
I agree here, but the library issue does make your programs hard to distribute. IMHO this was the killer.
If you build GUI apps, Kylix requires you to ship the equivalent of a complete Linux distribution in shared libraries with your program. Users hate this, programmers hate this.
OO.o does that. Mozilla does that. People don’t hate them. But if one is lazy as Borland and demands that you provide libraries that are hard to find because they only exist in some museum because they are so old. Taken this with the fact that you can’t compile them for your self… you’re bound to fail to get your application working on XYZ distro.
This is what people like me hated and not what you said.
This is what I meant to say if I wasn’t clear.
<skip>
And a message to you. On your mailing lists there at least half of messages where people request new features
That is the problem. Everyone has his holy feature. If we implement them all there would be no 2.0 release. Sad but true.
(foreach has been requested how many times for now) but you always fail to even try to understand where
foreach (element in list)
is different than
for i := 0 to (list.count – 1) do
At least I don’t. I do see the use. You are right here, you get a lot of resistance from my collegues to add features for just the purpose of saving keystrokes, but our policy is that if there is really a need we are open for an implementation.
And one more thing. For your sake leave this “hollier than thou” attitude and bash over other languages, it is so zealot like and zealotry never made anything good. It is not that other languages are bad, it is just that you failed to see their good sides and possible use.
Absolutely, there are languages beyond FPC that have a use. Only in the category of compiled languages I consider Pascal the best choice and even there other people will have their own taste.
Problem with pascal started when pascal people missunderstod word strongtype and started promoting it for dumbtype.
I can’t find myself in this comment as we always tried to make a practical tool, not a fundamentalistic tool.
Epilogue:
Don’t missunderstand me. FPC is great and I like to use it, it is your stand point that I don’t like and it pisses me off. But, only for some cases and some needs. And it will stay so until the FPC people realize that pascal is not everything and start cooperating with other languages.
Thanks!
For the record I opposed a garbage collector outright (they sux too much) and instead wanted some limited ref counting in objects. Delphi needs to be modernised without adversely affecting its performance/memory usage and that will require some thinking (personally I prefer having autovars which allow you to set a tobject to be ref counted).
Yeah, right. Those were messages about faster refcount if I remember correctly.
Producing a native gtk2 IDE with a glade like form designer is on my to do list but first I need to modernise the language! (such an IDE will be incompatible with delphi and lazarus of course)
Funny thing, I’m doing something like that for my self too, except that it is not on priority list. My job constantly interferes with my work on inline preprocessor inside of compiler
Just currious, modernising how?
Are we both trolls, then? Because I simply pointed your own gun at you, so we must both be the scum of the Internet. Your project ranks somewhere under SmartEiffel in being seriously utilized in the open source world, which in turn is somewhere around completely irrelevant. Compared to Java in open source, you don’t exist.
We are smaller than Java, but comparing FPC to SmartEiffel is nonsense. If you need some download statistics just say so. Anyway, Java users are not the right persons to try to convert to Pascal, this was what the interview was hinting at.
Personally I just think you’re a language zealot just the other side off of the deep end. Even Borland’s craptastic .NET support is more successful than FreePascal, despite being reviled by most Delphi programmers.
Yes, this is a wave (a small one though), of new FPC users. It is also no accident that the CrossFPC project was started.
That’s ok, I like a lot of fringe languages too, but I’m definitely not deluded-enough to suggest to Borland, which in all likelihood is going to die unless the European software market sustains it, or Microsoft keeps it alive for anti-trust reasons, that they target some nonexistent market.
Borland should target the market that uses C, not the market that uses C#, just as we do. That *is* an existant market, and there is a lot more future for Pascal in it than the C# world.
Read the archives! Basically im trying to cretae a modern dialect called RADPascal which turns the compiler into a multi parse one. This will allow you to eliminate all forward refs, circular units and having to predefine class structure so you can build classes as in C#/Python without having to type out the interface code twice.
Getting this done all depends on how easy it is for me to hack the compiler (which isn’t the easiest thing to hack since its fairly unorthodox in design and uses a custom parser) and Im fairly busy hacking Gnome and freedesktop projects in C at the moment too so time is not on my side!
About all points. And neither does Delphi, they are moving on .NET. You can expect that 2005 is the last Delphi compiler to still produce native code. As soon as you use .NET features you fail on all points where you said Delphi is good.
Extremely unlikely. The majority of Delphi code is still Win32.
And then again I remember how you were moded down when proposing things like foreach, garbage collector and others????
If you ask a language feature (like foreach), you can make the need for it clear (and it should be something else than just save some keystokes) there is a big change you’ll get it.
If you are proposing to turn FPC into a garbage collected language, together with a load of other .NET stuff, you will get a loud no, as it is a strategic decision not to go that route.
First, this is the non-zealot tone I expect from people. And this is how you should express your self when posting biased opinion. I can’t help my self but to go against people like that.
What you’ve missunderstood. I was not praising .NET, in fact I use much more fpc than .NET. What I tried to succed was only one tool coder not bashing over other tools and recognition of other tools. There’s no tool that would be good only or bad only. Ups and downs everywhere.
>foreach … for
At least I don’t. I do see the use. You are right here, you get a lot of resistance from my collegues to add features for just the purpose of saving keystrokes, but our policy is that if there is really a need we are open for an implementation.
I can respect that. Except that this is not saving keystrokes. It is about stability software produces without coders intervention.
I will dumb this down as possible.
foreach loops run as managed and index should be corrected on fly. For example if you delete one object in another thread, enumerator should be notified and behave accordingly.
foreach is nothing but safer treating of lists.
if you delete one object from list (in some other thread) while executing
for i := 0 to (list.count – 1) do
you end up with error “index out of bounds”.
same safe (but not so safe again) example in pascal would be linked list
p := first;
while not (p = nil) do
…
p := p.next;
end;
difference between for and this linked list is that I shouldn’t be affected if another thread deletes one object. with for example I will get “index out of bounds”, while linked list should not produce such error.
Think of foreach producing this kind of stability to any enumeration (linked or indexed) without coders intervention.
Hope this is sufficient
Hmmm… Perhaps I’ll disappoint you, but I’m not impressed by the C++ STL. Did you ever look at what code it generates? Let’s get back to the basics of programming: strings, sets, properties, units. You use these features any time, and they really do improve the code.
Why would that dissapoint me? As I said, what dissapoints me is when one coder praises one language above all. There is no “42” on this world and so there is no “one tool above others”. Hope you know what “42” is. If not, look up Hitchikers guide to the Galaxy
C++ has its ups and downs. Just as fpc. And any other language. But defining one being better or not ahould at least being noted with *Biased or Personal* or explained for a specific purpose. That is how I do that (almost always, from one time when I realised that you can preserve a lot of trolling if you do so).
I can’t find myself in this comment as we always tried to make a practical tool, not a fundamentalistic tool.
The only problem is that you’ve lost meaning what fundamentalistic tool should be somewhere along that road. At least that is my opinion from the viewers (or users) seat:)
@Daniël Mantione
Sorry for another answer.
I wasn’t praising garbage collector. I was saying his comments was interesting from the my point of view.
Sad thing is that I remembered wrong a little bit, but purpose was to make a joke when he reffered as getting .NET features out of fpc (he was only talking about refcounting and oposing garbage collector (as do I), (:but he didn’t denied foreach:), but that point is the one I strongly agree on). It was my mistake when joking and not my wish for a garbage collector.
As for foreach explanation. I dumbed down one in my previous answer, but having memory of your mailing list I doubt that would be enough.
@Jamie McCracken
I’ve already got something like that, if you need (I was planning to release it as OSS project when I would have time). MI interfaces, Template Classes, Macro Classes, strongref, inclass procedures, inclass properties etc… With a little work (day or two) you could even make generics. Most of it is done, but not yet finished.
I just don’t have time to wrap it up. But it suits for my use.
Ok, my next job on the compiler is SSA, but lets speculate a little bit about it; you make me puzzle about the foreach It is for sure not possible without some mutexing. Propably a refcount inside the Tlist can allow the delete to know wether a foreach is going on so it can be forked after which both get their own view of the list…
Ok, here’s the puzzle you wished. I could explain cleaner, but you wished a puzzle, so puzzle it is:)
It was much simpler for me. It is not a puzzle, it is more or less my experience.
First of, I’m not a person who just wishes for his favourite cookie and bothers people. I do that thing that I wish. So foreach, etc… I already have them;) But, since I’m not really person who would argue on mailing lists why and how (or at least gets fed up), but just does that, I planned to post as separate project. Or more like patch add-on for compiler. The only trouble I see, is my time. Job simply interferes with me so I simply can’t wrap it up.
I made my self preprocessor inside of the compiler, that prescans and moderates source as I predeclare (in such way, speed loss when compiling is almost 0). That’s how I got my self working MI interfaces, Template Classes, Macro Classes, strongref, inclass procedures, inclass properties etc… It reduced my code for almost 70%, but I would not get in talk about killing pascal here, please (pretty, pretty please). I survived enough of that already.
From there it was only a few lines modification in the place where foreach is stated. Also class must predeclare enumerator so that enumerator can move along the items. And yes, one declaration for enumerator for each implementation.
My implementation depends on MI interfaces, so I doubt it would serve you anything, but MI interfaces aren’t the problem here, you can do the same with monolithic hierarchy or even without interfaces, just not so elegant.
Just currious….
It seems funny to me that after all of the wishes and refusals from a LOT OF people on mailng lists, the one explanation posted on osnews??? would be treated as the next job???
Can you email me the code?
My address is jamiemcc at blueyonder dot co dot uk
Using a preprocessor should be a lot quicker and easier than modifying the parser so yeah it could be interesting.
Thanks.
I like Borland to a certain extent, I’ve used JBuilder before and I use their free C++ compiler (BCC 5.5) because I can’t afford to get any of their new products. The only things I didn’t like about JBuilder were the form designer and the fact that it was slow because it uses Swing.
I figure some hardcore Java supporters will argue that Java is as fast as natively compiled languages, but interpreted code cannot be faster than native code if both are equally well written. Emulators make this case for me, if something needs a middle layer to interpret and convert instructions, its speed is limited by that extra step and therefore it cannot run as fast as something native.
Java has a hard enough time gaining traction in the open source desktop world. If Lazarus is still stuck in gtk+1.x land, then it’s going to have major, major problems, not to mention that nobody cares about Pascal that much anymore.
Not relying on a runtime is a good start – that distinguishes you from Mono and Java (well, except for GCJ kindof), but that’s just not good enough.
That’s the big problems with these open source projects, is that they don’t have the resources or skills to get to that extra level of polish that commercial developers do – at least on the desktop.
No, the next job is SSA and that is a huge task, but important. Anything other that is difficult can only be done after that. My colleagues also have their own projects they are working on. However, if you already have code, even though it is just a preprocessor, it can speed things up a lot as it is then much more straightforward to implement.
I don’t know if you’ll read this. Anyway, I’ll just search you on mailing list as soon as I find the time to wrap it up and include docs (I was preparing it for standalone project anyway) of my own view on how feature can be implemented.
When this could be,… I can’t tell.
I’ve got my own huge task which I can’t postpone