Recent

Author Topic: Object Pascal decline?  (Read 150004 times)

DelphiFreak

  • Sr. Member
  • ****
  • Posts: 255
    • Fresh sound.
« Last Edit: August 28, 2014, 07:22:19 pm by DelphiFreak »
Linux Mint 20.3, Lazarus 2.3, Windows 10, Delphi 10.3 Rio, Delphi 11.1 Alexandria

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11453
  • FPC developer.
Re: Object Pascal decline?
« Reply #136 on: August 28, 2014, 08:30:25 pm »
That's an interesting discussion. I'm very new to Pascal (but not to programming) and I can already tell that Delphi is simply not competitive. Why would I want to pay 1000 (or whatever) dollars for Delphi 'Professional Edition' (or whatever) when I can pay 0 dollars for Eclipse and JVM?

So you really think that all that matters with respect to development is expressed by the toolchain's price?
 
Interesting....

vick

  • New Member
  • *
  • Posts: 15
Re: Object Pascal decline?
« Reply #137 on: August 28, 2014, 09:48:09 pm »
Quote
So you really think that all that matters with respect to development is expressed by the toolchain's price?
I believe I never mentioned the word 'all'.
So you really thing that the very high price of Delphi products (compared to the competition, like the top 10 of that TIOBE index) has 'nothing' to do with decline of it's popularity? Interesting.


marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11453
  • FPC developer.
Re: Object Pascal decline?
« Reply #139 on: August 28, 2014, 10:49:37 pm »
Quote
So you really think that all that matters with respect to development is expressed by the toolchain's price?
I believe I never mentioned the word 'all'.
So you really thing that the very high price of Delphi products (compared to the competition, like the top 10 of that TIOBE index) has 'nothing' to do with decline of it's popularity? Interesting.

First, TIOBE is not really a reliable resource IMHO.   And yes, I think that failure to align with a major software vendor that pushes it as part of its palette (IOW being a small independent) is a much bigger problem than price.

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11453
  • FPC developer.
Re: Object Pascal decline?
« Reply #140 on: August 28, 2014, 11:03:03 pm »

* marcov feels contrary today.

And when did you start to use Delphi, Taaz? When it comes to attracting new programmers, the ones who don't know Delphi already, it just doesn't look that great.

Opinion presented as fact.

Quote
Yes, JVM takes forever to start, VS Express is limited

JVM keeps the system at arms length, and that is presented at strength (which it is, but only to the small number of users that regularly change target). VS-E is not really interesting.

Quote
and Windows-centric

Not really a problem IMHO. Whole swaths of programmers will never do anything else.

Quote
'C++ is a horrible language' (Linus Torvalds),

(coming from a  C programmer...)

Quote
Python... what Python? 2 or 3?

The one without significant whitespace of course!

Quote
Perl is write-only, PHP and JavaScript are just a joke...

IMHO javascript is assembler. As in that it should be generated by proper tools. ASP.NET got that right.   

Nothing wrong with PHP an sich, but the problem is that a lot of PHP webtools customization is misrepresented as programming.

Quote
And you know what. I'm absolutely sure that Delphi is not without it's big issues either. Like... the whole thing about it dying? :)

Newsflash, the desktop market suddenly grew 5% this quarter. It is all not dead yet :)

Seriously, I think it matters most what apps you target.

Quote
Sure. And so do all these other languages I mentioned.  JVM is a brilliant piece of software.

Yes. The vulnerability charts seem to agree, it even bested long term winner Microsoft.

Quote
C# is an excellent programming language (From what I heard).

It is basically Java restated.

Quote
Python is simple and straightforward and always tries to Do The Right Thing.

I haven't seen a language that says "it is hard to do things and we always want the wrong thing". IOW the advocatists of every language talk about their language in that way. It is not an unique feature.

Quote
Do you know just how easy it is to count the number of characters in a string in Perl?

I don't know. Haven't tried in any language, since I don't write that much renderers. And the ones I did would probably use proportional fonts, so I would need the total width in pixels, not characters.

Quote
Javascript is already installed on almost every computer on this planet.

No. In every browser, different thing, since you can't access most of the computer from the browser.

Quote
C++ has it's ridiculously optimized compilers, and enormous codebase (including that C part, naturally). You see, other languages are not without their strengths.

Ridiculously is a bit strong. I don't like C++ but could live with it if I had too.  The minimal subset and the need to constantly find libraries is a drag though. In recent time it has gotten better since many commercial compilers now also install boost by default, but it was a bit painful. Same with a non compiler specific GUI lib.

vick

  • New Member
  • *
  • Posts: 15
Re: Object Pascal decline?
« Reply #141 on: August 28, 2014, 11:31:51 pm »
Quote
First, TIOBE is not really a reliable resource IMHO.
It can perhaps be useful as a very rough estimate (much like the infamous Benchmark Game). It's indeed quite unlikely that C is the worlds most popular programming language, and that Javascript isn't. Their both are pretty popular, though.

Quote
And yes, I think that failure to align with a major software vendor that pushes it as part of its palette (IOW being a small independent) is a much bigger problem than price.
(shrug) Then you can just as well say that the failure to become a major software vendor was an even bigger problem :)
So you don't see the high barrier to entry as a significant drawback. Well, I view it differently. Look no futher then PHP and Javascript. The only thing good about them is high availability. Especially PHP. Despite being strictly worse then even Perl (which is a very flawed language already), mod_php for Apache was so convinient for shared hosting providers to install. And the market followed. Every other popular language demonstrates that. GCC? Sun opensourced JDK what, ten years ago already? 'Python is so simple to get started with, it basically writes itself!' Even Microsoft, having what amounts to monopoly on desktop operating systems market, offers a reasonable 'Starter Edition' of VS.
Quote
The idea of Express editions is to provide streamlined, easy-to-use and easy-to-learn IDEs for hobbyists and students, rather than professional software developers.

And Embarcadero doesn't? And you don't find that peculiar?

vick

  • New Member
  • *
  • Posts: 15
Re: Object Pascal decline?
« Reply #142 on: August 29, 2014, 12:24:42 am »
Quote
Opinion presented as fact.
I dunno, we can try some expirements... I just cleared the cache and typed 'is delphi' and 'is python' into Google without pressing enter and it displayed some completions, which were pretty interesting.

Quote
VS-E is not really interesting.
Not really interesting to whom?

Quote
Not really a problem IMHO. Whole swaths of programmers will never do anything else.
Unless they want to write something for these tablet thingies...

Quote
(coming from a  C programmer...)
Extra Legs Ontoa Dog! ;)

Quote
IMHO javascript is assembler. As in that it should be generated by proper tools. ASP.NET got that right.
It's assembler already? Damn, it looked just like one of those children of C...

Quote
Nothing wrong with PHP an sich
Except approximately 900000 functions in global namespace... Except Unicode... Except...

Quote
Yes. The vulnerability charts seem to agree, it even bested long term winner Microsoft.
Which curiously correlates with it besting Microsoft products, according to TIOBE :)

Quote
I haven't seen a language that says "it is hard to do things and we always want the wrong thing". IOW the advocatists of every language talk about their language in that way. It is not an unique feature.
They talk the talk, but do they walk the walk? Thinking that any random string is ASCII by default is wrong. You hear that, Perl? Or wait, you think everything is in Latin-1. Having two different kinds of classes is wrong. One should be enough. You hear that, Object Pascal? Wait, you have four?!

Quote
I don't know. Haven't tried in any language, since I don't write that much renderers. And the ones I did would probably use proportional fonts, so I would need the total width in pixels, not characters.
Or when you want, for example, split some word into prefix, root, suffix...

Quote
No. In every browser, different thing, since you can't access most of the computer from the browser.
But you can access a lot of the browser, which is not that easy using any other programming language :)

Quote
Ridiculously is a bit strong. I don't like C++ but could live with it if I had too.  The minimal subset and the need to constantly find libraries is a drag though. In recent time it has gotten better since many commercial compilers now also install boost by default, but it was a bit painful. Same with a non compiler specific GUI lib.
Yeah, it's a mess.
« Last Edit: August 29, 2014, 12:27:15 am by vick »

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11453
  • FPC developer.
Re: Object Pascal decline?
« Reply #143 on: August 29, 2014, 11:08:37 am »
Quote
Opinion presented as fact.
I dunno, we can try some expirements... I just cleared the cache and typed 'is delphi' and 'is python' into Google without pressing enter and it displayed some completions, which were pretty interesting.

Same problem as TIOBE.

Quote
Quote
VS-E is not really interesting.
Not really interesting to whom?

As competition for Lazarus which styles itself as native development. IIRC it contains no MFC.

Quote
Quote
Not really a problem IMHO. Whole swaths of programmers will never do anything else.
Unless they want to write something for these tablet thingies...

I won't use my desktop toolchain for that.

Quote
Quote
IMHO javascript is assembler. As in that it should be generated by proper tools. ASP.NET got that right.
It's assembler already? Damn, it looked just like one of those children of C...

In function, not appearance.  It is the lowest thing natively understood by a browser, just like assembler is the lowest thing understood by a CPU.

Quote
Quote
Nothing wrong with PHP an sich
Except approximately 900000 functions in global namespace...

How many do you use? There are couple of ten thousand in the windows unit, but I can maybe name say 200-300.

Quote
Except Unicode... Except...

native, normal application development :-)

Quote
Quote
Yes. The vulnerability charts seem to agree, it even bested long term winner Microsoft.
Which curiously correlates with it besting Microsoft products, according to TIOBE :)

Java lost global domination and basically retreated to serverside and some mobile dabblings. Sometimes the clients are still java (e.g. ERP), but the numbers using clients for that are also decreasing.

Moreover, Java is a language, and Lazarus a complete development system. Netbeans or Eclipse? Or are you the last Visual Cafe or JBuilder holdout?

Quote
Quote
I haven't seen a language that says "it is hard to do things and we always want the wrong thing". IOW the advocatists of every language talk about their language in that way. It is not an unique feature.
They talk the talk, but do they walk the walk?

Opinion.

Quote
Thinking that any random string is ASCII by default is wrong.
If you think we do that, we don't. Please read up before arguing.

Quote
You hear that, Perl? Or wait, you think everything is in Latin-1. Having two different kinds of classes is wrong.

Again opinion presented as fact.  Lazarus is simply closer to the machine than Perl. Lazarus/FPC follow, for 1 byte strings the
encoding of the host OS. Which on WIndows, surprise, surprise, is NOT unicode.

On Linux it is.

Quote
One should be enough. You hear that, Object Pascal? Wait, you have four?!

In trunk, base types, five even. short,ansi, two widestring (one COM, one not) and unicodestring. Open array types, pointers and character types excluded. For a breakdown, see http://www.stack.nl/~marcov/delphistringtypes.txt

Maybe in trunk non Windows/COM widestring is implemented on unicodestring, so that would reduce it to 4. (it has no legacy except Kylix, so that would be easy to do)

If you hate multiple types, come back to me when you try nineties Perl code to run on a modern system.

Quote
Quote
I don't know. Haven't tried in any language, since I don't write that much renderers. And the ones I did would probably use proportional fonts, so I would need the total width in pixels, not characters.
Or when you want, for example, split some word into prefix, root, suffix...

Then I have a list of those, and those are mostly   pos(strprefix,strbase) operations. Really, I use unicodestring in Delphi (that still indexes in two byte quantities) for years now, and I never had to do anything close to this. Granted, our audience mostly uses Latin and Cyrillic (greek, russian) script languages. Haven't broken ground to Arabic or Eastern Asian yet.

Quote
Quote
No. In every browser, different thing, since you can't access most of the computer from the browser.
But you can access a lot of the browser, which is not that easy using any other programming language :)

Yes. In prison you can touch all the bars. Oh those poor people outside the prison have no bars! As said, I think javascript is assembler for the web and better generated than written. (e.g. by placing components on the form as ASP.NET does)

Quote
Quote
Ridiculously is a bit strong. I don't like C++ but could live with it if I had too.  The minimal subset and the need to constantly find libraries is a drag though. In recent time it has gotten better since many commercial compilers now also install boost by default, but it was a bit painful. Same with a non compiler specific GUI lib.
Yeah, it's a mess.

Delivering a portable framework is one of the core points that C#/Java do right. Lazarus also attempts, but has slight funding and manpower challenges compared to those multi-billion enterprises. The trouble is that C++ generallly doesn't, and the free ones available often drag a posix like model to my non posix oriented core platform (read: Windows)

See also the above remark about MFC in VS-express.

vick

  • New Member
  • *
  • Posts: 15
Re: Object Pascal decline?
« Reply #144 on: August 29, 2014, 01:08:45 pm »
Quote
If you think we do that, we don't. Please read up before arguing.
No, I was talking about Python in comparison to other languages. Python did that (and frequently bailed out with cryptic 'Unicode decode error'). And then they fixed that, in version 3. Which is something that other programming languages are reluctant to do. So they accumulate a lot of cruft over the years. Perl and C++ probably the best examples.
Another thing that Python had were 'old-style' classes and 'new-style' ones. And they god rid of the former ones. While Pascal has what... classes and objects and advanced records and then these 'objective' thing? Is there any chance to ditch some of that cruft, like Python did? Unlikely.
Quote
If you hate multiple types, come back to me when you try nineties Perl code to run on a modern system.
Perl 5 was released in, IIRC, 1994. 20 years ago. And there is a very good chance that a 1995 Perl script will run on my system, with Perl 5.20 (released in May 2014). And maybe this is why the following works:
Code: [Select]
use 5.020;
use strict;
use warnings;

LOL WTF!

exit 0;
Code: [Select]
$ perl wtf.pl
$ echo $?
0
$ perl -c wtf.pl
wtf.pl syntax OK
SYNTAX WHAT?

hinst

  • Sr. Member
  • ****
  • Posts: 303
Re: Object Pascal decline?
« Reply #145 on: August 29, 2014, 02:28:11 pm »
About Python:

1. Python still has this Global Interpreter Lock thing though... You can read about on the Internet if you interested. It didn't cause much trouble back in the days when most machines had only one processor with one core, but now it makes developing multithreaded applications in Python a pointless feat.

2. Python developers still support both Python 2.x and Python 3.x. They support them both, you can see it on their website. Python 2.7.8 was released on 2014-07-2 while Python 3.4.1 was released on 2014-05-19. I guess their idea to make Python 2 and 3 incompatible didn't work so well. I read some stories on the Internet how people struggle to install Python libraries and work with them, and this process often turns into a nightmare because there are two (or even more) versions of Python that are absolutely incompatible.
FPC developers don't have to fix bugs in FPC 2.0 now because all subsequent editions are mostly backwards-compatible. Python developers still patch Python 2.x, and I guess that a lot of people didn't move on from Python 2 to Python 3

3. Python is dynamically typed and it sucks


About class and object:

In my opinion, both class and object have a right to exist; object type is often useful. If my understanding is correct, ojbective type is only for interoperation with Objective-C. Records have methods only in Delphi mode. Introducing methods to records was Embarcadero's idea, I guess

Anyway I don't see any good reason to exclude record or object from FPC syntax. Why u no like object? Do object types give you headache?
Too late to escape fate

skalogryz

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2770
    • havefunsoft.com
Re: Object Pascal decline?
« Reply #146 on: August 29, 2014, 02:48:53 pm »
But you can access a lot of the browser, which is not that easy using any other programming language :)
Yes. In prison you can touch all the bars. Oh those poor people outside the prison have no bars! As said, I think javascript is assembler for the web and better generated than written. (e.g. by placing components on the form as ASP.NET does)
Not really an assembler, due to Flash (and others such as Silverlight and Java applets... both seems to be dead).
I also saw some esoteric .NET based plugins for browser s (works in IE only - as expected).

And every browser do have an ability to be "extended" with any other plugin, which could challenge JS popularity (such as Google's NaCl... which end up nowhere). And a plugin has its own benefit over JS - faster implementation. And as MS (silverlight) example shows, it's extremely necessary to be cross-platform... sounds like a job for FPC and good marketing team. But will probably see Lua taking it over.

... hmm... well, yes, JS is assembler.
« Last Edit: August 29, 2014, 02:52:00 pm by skalogryz »

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11453
  • FPC developer.
Re: Object Pascal decline?
« Reply #147 on: August 29, 2014, 04:16:19 pm »
Not really an assembler, due to Flash (and others such as Silverlight and Java applets... both seems to be dead).
I also saw some esoteric .NET based plugins for browser s (works in IE only - as expected).

Plugins are not universal. That's like saying you could make activex applets with FPC. (I've done so with Delphi in the past)

Quote
And every browser do have an ability to be "extended" with any other plugin, which could challenge JS popularity (such as Google's NaCl... which end up nowhere).

It seemed that flash had a chance on being ubiquitous a few years ago, and then Steve Jobs killed it. The installed base of mobile browsers nowadays alone prevents any plugin from getting any traction.

NaCl could be the exception since it has the potential to be pushed by Google, which controls Chrome, and heavily subsidizes firefox. But you don't hear that much about it, so first see, then believe :-)

Quote
And a plugin has its own benefit over JS - faster implementation. And as MS (silverlight) example shows, it's extremely necessary to be cross-platform...

Well, mono tried with moonlight. Trouble is that there was simply not enough interest in it. And if even Microsoft can't launch a dominant plugin, then the ranks of organizations that can becomes very, very small. If any.

Quote
sounds like a job for FPC and good marketing team. But will probably see Lua taking it over.

Quote
... hmm... well, yes, JS is assembler.

good :-)

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11453
  • FPC developer.
Re: Object Pascal decline?
« Reply #148 on: August 29, 2014, 04:29:04 pm »
About Python:

1. Python still has this Global Interpreter Lock thing though... You can read about on the Internet if you interested. It didn't cause much trouble back in the days when most machines had only one processor with one core, but now it makes developing multithreaded applications in Python a pointless feat.

Java and C# afaik still have global locks for the larger GC activities too. Even FPC has global locks in the heapmanager (though they are afaik a different magnitude from the C# GC ones).

Quote
2. Python developers still support both Python 2.x and Python 3.x. They support them both, you can see it on their website. Python 2.7.8 was released on 2014-07-2 while Python 3.4.1 was released on 2014-05-19. I guess their idea to make Python 2 and 3 incompatible didn't work so well. I read some stories on the Internet how people struggle to install Python libraries and work with them, and this process often turns into a nightmare because there are two (or even more) versions of Python that are absolutely incompatible.

True.

Quote
FPC developers don't have to fix bugs in FPC 2.0 now because all subsequent editions are mostly backwards-compatible. Python developers still patch Python 2.x, and I guess that a lot of people didn't move on from Python 2 to Python 3

On the source level. Keep in mind that on the binary level (if we ever get packages) that will be different.

Quote
3. Python is dynamically typed and it sucks

I'm not sure what problem Python is fixing in the first place. I don't see the attraction. 

Quote
About class and object:

In my opinion, both class and object have a right to exist; object type is often useful.

I don't see that, which is why I reacted heavily to the discussion.  I just had the felt that a lot of the responses were opinions without much supporting explanation regurgitated from earlier discussions. (and then specially factoring in that methods-in-records are now in production versions, contrary to earlier discussions)

So I prodded a bit. It is not really that I want to kill TP objects immediately, if you know me you'll know that I occasionally help out with turbovision and the IDE, so I actually do stuff with it.

Quote
If my understanding is correct, ojbective type is only for interoperation with Objective-C.

Going by comments in mac-pascal you can use it standalone, or at least it is not far from it (contrary to Delphi's constructs dealing with Objective C, which is more dispatchinterface based afaik)

It's hard to come up with a reason though.  Intuitively an application, would have to exploit the runtime aspect of the object model of objective C.

Quote
Records have methods only in Delphi mode. Introducing methods to records was Embarcadero's idea, I guess

Yes. Back then (D2006) it was assumed to be needed for ducktyping and generics constructs that were being developed (for..in and the .NET generics in D2007). It could be simply .NET copying, which was happening a lot in that time.

Quote
Anyway I don't see any good reason to exclude record or object from FPC syntax. Why u no like object? Do object types give you headache?

I've no plan whatsoever to exclude record. I simply don't see the use for TP object in a world that has D2006 records and classes, and therefore don't recommend it for future use. IMHO the few examples in favor (basic non virtual inheritance, and VMT based inheritance in a mix of static and dynamic use) are a bit convoluted.

janvb

  • Jr. Member
  • **
  • Posts: 76
Re: Object Pascal decline?
« Reply #149 on: August 29, 2014, 04:53:16 pm »
I'm not sure what problem Python is fixing in the first place. I don't see the attraction. 

People learn it on schools, specially electronic students and it is rather easy to do test scripting in. Looking at Raspberry PI it basically have replaced BASIC as a first language. It is easy to learn and available.

I don't like it, but I respect that others use it so I am forced to learn it as well.

 

TinyPortal © 2005-2018