I'm with you there. Last week I was working on a project with PureBasic, so far this week I've been using Qt. Imo both are excellent.Samuel wrote:I agree with this completely. There is no good reason why someone shouldn't learn and use as many languages as they possibly can.
If you know several languages you can use whichever one is best suited for your current project. Besides one trick ponies get old fast.
Authoritative Viewpoints on OOP
- the.weavster
- Addict
- Posts: 1576
- Joined: Thu Jul 03, 2003 6:53 pm
- Location: England
Re: Authoritative Viewpoints on OOP
Re: OOP is designed for non-programmer control of software.
Glad you find it useful; thanks for saying so.coder14 wrote:I always felt that I missed out on OOP, but not anymore. Thank you for clearing it up.

I believe that Little John is currently taking a TOEFL course; perhaps you could get some reading comprehension tips from him.the.weavster wrote:Surprise, surprise TI-994A doesn't like OOP.

sancho2 wrote:The following is a link to the entire blog post... You have taken his quote out of context, to make it seem as though he is negative towards oop at any level.
No kidding Sherlock. If you clowns had bothered to read the original post, you'd have found the original articles linked in their respective titles (except for the book, which only links to a single page - buy the book if you want to read it).Samuel wrote:For those of you who don't want to read the entire blog. Here are the two paragraphs right before the one TI-994A took out of context.
I did mention that they were excerpts.

This in not an agenda against OOP, and there's nothing to be taken out of context. It serves only as a clarification that the OOP model is not the manna from heaven that it has been purported to be, and there is no great loss for not using it. It does, however, validate the PureBasic Team's decision not to implement it.
Tenaja wrote:Use the tool that suits you, your project, and your customer.
Precisely. In the end, use whatever gets the job done, or whatever floats your boat.skywalk wrote:OOP can help or hinder.
But, please, stop whining about it.

Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel 

Re: Authoritative Viewpoints on OOP
Absolutely right; especially since no such proposition was asserted in the first place. Yet you agreed with it, hook, line, and sinker.the.weavster wrote:I'm with you there.Samuel wrote:There is no good reason why someone shouldn't learn and use as many languages as they possibly can.
That TOEFL course would really help you; and apparently Samuel too.

Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel 

Re: OOP is designed for non-programmer control of software.
To be honest, you don't need OOP for WinAPI-style programming. We didn't need it 20 years ago.TI-994A wrote:This in not an agenda against OOP, and there's nothing to be taken out of context.
It serves only as a clarification that the OOP model is not the manna from heaven that it has been purported to be,
and there is no great loss for not using it. It does, however, validate the PureBasic Team's decision not to implement it.
If you want to use some 15 years old ActiveX/COM components, you may be lucky using COMate+
to call them, but maybe that would count as using object-oriented components already, so be careful.
If you want to use modern APIs like Windows Runtime, Android API, many iOS/MacOSX APIs, Web Frameworks etc.,
you will get confronted with OOP style. Not only with the APIs itself, also all default/major programming languages
to develop for all modern systems support OOP, or are entirely object-oriented (Java, C++, C#, Objective-C, JavaScript/TypeScript etc.).
Makes somehow sense to use languages with support for object-oriented programming, if you want/need to use/access
all those modern object-oriented APIs. SDKs and developer documentation for those APIs use such languages.
The only ways to avoid contact with anything OOP within the modern developers world is IMO:
1.) Be happy with the old stuff, ignoring all new developments, APIs, frameworks, platforms, technologies, ...
2.) Find a 3rd-party wrapper-language that provides a flat, procedural system that hides the behind-the-scene object-oriented things from you
There are tools available for both of the above possibilities. SpiderBasic for example is clearly such a category 2 tool.
PB to some extend - it hides the object-oriented Cocoa API on MacOSX, for example. And evil object-oriented systems like the OGRE 3D engine.
Without rating, it should be pretty clear that the developer, who wants to avoid any contact with object-oriented APIs,
is then bound to the limits of what such a 3rd-party product makes available. In most cases that's only a small percentage
of the real APIs, simply because most of the mentioned APIs are really, really huge - often with many hundred classes, containing
many thousand methods/functions inside. Would be crazy to export all that into a flat API, just because a minority
has problems or reservations against using any object-oriented stuff.
It does not make sense to ignore and deny that the rest of the world is using OOP everywhere (APIs, languages).
The OOP hype is over for 15 years already. Today it's simply used everywhere. It became a standard for new APIs.
Some tools you use just hide that fact and provide a procedural system for you to use. Maybe you can still live
without using any of the mentioned modern APIs.
Be happy, if that's all you want and if you are already satisfied with it. Nonetheless, the world out there is still there,
even if you close your eyes.
Peace out
Re: OOP is designed for non-programmer control of software.
At the end of the day, all that truly matters is what works for you. I make money selling apps written with PureBasic; so to me, nothing else matters. Peace out, too. 

Re: Authoritative Viewpoints on OOP
Hello again, HanPBF. Presumably, if these varying structures contain the pre-defined properties of the various windows classes (gadget types), you could simply add a common class type integer at the beginning of each structure, and the add() function could perform class-type checks with the PeekI() function, to determine which structure to use.HanPBF wrote:Of course, the pointers are 'typed' as pointers to structures.
It's about procedure overloading.
The separate functions would then be replaced with cases in a Select/Case block, neatly wrapped into a single function.
Not really overloading, but a close emulation.
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel 

Re: OOP is designed for non-programmer control of software.
Hi Danilo. As always, you make some excellent points. But like I've said, I have nothing against the OOP model, although I don't find it to be an absolute necessity.
Ultimately, the object-oriented model is nothing more than a programming paradigm built upon the same imperative principles. Its absence would in no way incapacitate, nor invalidate any programming language.
Not all of them. Like PureBasic, C is also an imperative procedural language, and has remained one of the most popular programming languages in the world. Accordingly, major vendors would not want to forego such a lucrative developer base. Even the newer OS APIs, including those of Windows, OSX, iOS and Android, provide runtime interfaces for languages that do not support the OOP model.Danilo wrote:If you want to use modern APIs like Windows Runtime, Android API, many iOS/MacOSX APIs, Web Frameworks etc., you will get confronted with OOP style. Not only with the APIs itself, also all default/major programming languages to develop for all modern systems support OOP, or are entirely object-oriented...
To be more accurate, that should only apply to the amateur developers, who lack the ability to interface with such APIs directly. Granted, such third-party tools do add a level of convenience, but all is not lost without them.Danilo wrote:...it should be pretty clear that the developer, who wants to avoid any contact with object-oriented APIs, is then bound to the limits of what such a 3rd-party product makes available.
You've got that upside down. Although their interfaces are designed for the OOP model, all such APIs and SDKs are themselves imperative in nature at the core level. And the same holds true even for OOP languages. After all, classes, methods, and objects are nothing more than compound structures, functions, and pointers, powered by an underlying imperative architecture.Danilo wrote:Some tools you use just hide that fact and provide a procedural system for you to use.
Ultimately, the object-oriented model is nothing more than a programming paradigm built upon the same imperative principles. Its absence would in no way incapacitate, nor invalidate any programming language.
Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel 

Re: Authoritative Viewpoints on OOP
Hello TI-994A,
as I wrote
But I don't need a select case for each class or namespace, like GUI, Data, FileSystem, or so on, but put all in the map and build a string key for the map. Due to upgrade the slots, which are the index, the map is very fast.
With Type1 + Method + Type2 (double dispatch) You would need a sparse array (and much memory...
By the way, a central select case for all types/methods is slower than map due to not using an index.
as I wrote
Of course I use a Type attribute in the structure and my select/case is a map...Currently, for the above given cases, I use a type in the structure and build up a key for a map to find the implementation.
The map is about 5 times slower than the direct call.
But as PB runs at lightspeed...
But I don't need a select case for each class or namespace, like GUI, Data, FileSystem, or so on, but put all in the map and build a string key for the map. Due to upgrade the slots, which are the index, the map is very fast.
With Type1 + Method + Type2 (double dispatch) You would need a sparse array (and much memory...

By the way, a central select case for all types/methods is slower than map due to not using an index.
- the.weavster
- Addict
- Posts: 1576
- Joined: Thu Jul 03, 2003 6:53 pm
- Location: England
Re: Authoritative Viewpoints on OOP
@Danilo
Excellent points well made.
Excellent points well made.
Re: Authoritative Viewpoints on OOP
TI994A!
It was my first home computer, and the first program I wrote was a lottery number generator that I saved to tape! Ahh those were the days..
I don't think this is so much an argument against OPP, you OOP guys are way too sensitive.
I think the point is more in it's OVERUSE in todays programming landscape. I Call it OOPitis, which is a very similar disease to SQLitis.. Ever notice that the people who are expert SQL programmers couldn't write code for a flat database if their life depended on it? Honestly I think they just find it too difficult in both cases.
I was once called upon to modify a program that wasn't working correctly. I don't remember all the details but I needed to create a small file that contained a date and time to use as a check to see if the program was already run for that day. So I did it with a flat file.. No need to use a relational database for a tiny little file all of maybe 12 bytes. Well.. That cause quite a stir at my office! A meeting was called and I had to explain why I hadn't used BTRIEVE to create the file.. How would the file be managed they asked? LOL text editor?
Right tool for the job guys.. OOP isn't the answer for 99% of the software out there. Unless you are coding enterprise systems, it's just overkill. Bottom line is most people use it because that's all they know.
Just my opinion.
It was my first home computer, and the first program I wrote was a lottery number generator that I saved to tape! Ahh those were the days..

I don't think this is so much an argument against OPP, you OOP guys are way too sensitive.

I was once called upon to modify a program that wasn't working correctly. I don't remember all the details but I needed to create a small file that contained a date and time to use as a check to see if the program was already run for that day. So I did it with a flat file.. No need to use a relational database for a tiny little file all of maybe 12 bytes. Well.. That cause quite a stir at my office! A meeting was called and I had to explain why I hadn't used BTRIEVE to create the file.. How would the file be managed they asked? LOL text editor?
Right tool for the job guys.. OOP isn't the answer for 99% of the software out there. Unless you are coding enterprise systems, it's just overkill. Bottom line is most people use it because that's all they know.
Just my opinion.

Make everything as simple as possible, but not simpler. ~Albert Einstein
Re: OOP is designed for non-programmer control of software.
If you had actually put links in that post you might not look the fool right now. Did you edit them out for some reason?TI-994A wrote:If you clowns had bothered to read the original post, you'd have found the original articles linked in their respective titles (except for the book, which only links to a single page - buy the book if you want to read it).
We clowns are laughing.
Here it is:
Code: Select all
quote="TI-994A"]Some light reading for the i Object-Happy /i folks... i you know who you are: /i :wink:
quote="Edsger W. Dijkstra" i Object-oriented programming is an exceptionally bad idea.../i /quote quote="Paul Graham" i Object-oriented programming offers a sustainable way to write spaghetti code. / /quote quote="Paul Graham" i...it is a good tool if you want to convince yourself, or someone else, that you are doing a lot of work. /i /quote quote="Joe Armstrong" i The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle. /i /quote quote="Eric Lippert" i OOP is a style of programming which ... help in the design and implementation of large scale software. Object Happy people feel the need to apply principles of OO design to small, trivial, throwaway projects. They invest lots of unnecessary time making pure virtual abstract base classes.. /i /quote
Sounds a lot like somebody we know. :lol: /quote
Re: OOP is designed for non-programmer control of software.
@sancho2: URL links don't show up in the usual copy/paste operations, you have to use 'Copy link address'. You can tell they are there by placing the mouse over the link (a link shows up as underlined in your browser).sancho2 wrote:If you had actually put links in that post you might not look the fool right now. Did you edit them out for some reason?
We clowns are laughing.
Here it is:Code: Select all
quote="TI-994A"]Some light reading for the i Object-Happy /i folks... i you know who you are: /i :wink:
Re: OOP is designed for non-programmer control of software.
Indeed they were. Coincidentally, I did a similar program too, for checking winning numbers in a raffle. However, after struggling with a tape recorder for almost a year, I was lucky enough to get the expansion unit, and could thus save my hard work to 5.25" floppies (SS/SD!).JackWebb wrote:Hi JackWebb. It was my first home computer, and the first program I wrote was a lottery number generator that I saved to tape! Ahh those were the days..
And I know what you mean about databases; most programs I worked on in the early days did not warrant their use, but the status quo demanded it. Which seems to be the same case with the OOP model today.
Perfectly put.JackWebb wrote:Right tool for the job guys.. OOP isn't the answer for 99% of the software out there. Unless you are coding enterprise systems, it's just overkill. Bottom line is most people use it because that's all they know.

That's from another thread altogether, genius. Please, ease up on your clowning and try to keep up.sancho2 wrote:If you had actually put links in that post you might not look the fool right now. Did you edit them out for some reason?
We clowns are laughing.
Here it is:TI-994A wrote:Some light reading for the Object-Happy folks...
Thanks for pointing that out Demivec. Sadly, this guy's simply off the reservation; he's rambling about posts made in another thread.Demivec wrote:URL links don't show up in the usual copy/paste operations, you have to use 'Copy link address'. You can tell they are there by placing the mouse over the link (a link shows up as underlined in your browser).

Texas Instruments TI-99/4A Home Computer: the first home computer with a 16bit processor, crammed into an 8bit architecture. Great hardware - Poor design - Wonderful BASIC engine. And it could talk too! Please visit my YouTube Channel 

Re: OOP is designed for non-programmer control of software.
@TI-994A: You're welcome.TI-994A wrote:Thanks for pointing that out Demivec. Sadly, this guy's simply off the reservation; he's rambling about posts made in another thread.Demivec wrote:URL links don't show up in the usual copy/paste operations, you have to use 'Copy link address'. You can tell they are there by placing the mouse over the link (a link shows up as underlined in your browser).
I want to clarify that I wasn't picking sides, just making a statement of fact. I think it is better to remove simple and unnecessary misunderstandings whenever possible.
These kinds of discussion generally degrade to being a tit-for-tat kind of thing with opinions given more importance than facts. I'll kindly excuse myself from the discussion and let things continue on as they were.

Re: OOP is designed for non-programmer control of software.
After clicking the titles and everywhere else a dozen times I used the quote button. What else should I have done?Demivec wrote:@sancho2: URL links don't show up in the usual copy/paste operations, you have to use 'Copy link address'. You can tell they are there by placing the mouse over the link (a link shows up as underlined in your browser).sancho2 wrote:If you had actually put links in that post you might not look the fool right now. Did you edit them out for some reason?
We clowns are laughing.
Here it is:Code: Select all
quote="TI-994A"]Some light reading for the i Object-Happy /i folks... i you know who you are: /i :wink:
Are we talking about the same post?
http://www.purebasic.fr/english/viewtop ... 45#p466745
I still see no links anywhere?
As for you Ti.., See you around. This is not worth it. You attack everyone and claim they are the ones who have issues.
I'm out.