|
I disagree with most of your comment - or rather the parts were pertinent to BASIC's form and coding style (not the bit about projects failing which is a sidebar at best). I've had to embed too many arrays into a single line of basic code to ever be okay with their syntax.
The only other language it could have been written in would have been pure C (not C++).
I challenge you to produce C code that generates different assembly instructions than I can produce in C++ code.
You can literally write the same code in C++ that you can in C. You just do it differently.
Real programmers use butterflies
|
|
|
|
|
You young programmer just can't grasp the real differences between procedural code and OOP.
Try to understand, that us old dinosaurs (programmers in their 60's) use to write apps which would run on 1 megabyte RAM (not Gigabyte), run on a hard-drive which was only 20 megabytes in size or worse in a 1.44 megabyte floppy disk.
I wrote my first compiler for the Commodore 64 (using a Basic compiler) which only has 64 Kilobytes of Ram. I wrote a complete POS software package for a video rental store which ran on a Kaypro computer with 2 floppy disks (no harddrive) and 640 KB ram.
You learn something from writing code for computers with so little hardware capability. Todays programmers gasp if they had to use a PC with less than a core i7 and 32 Gb ram. I am shocked at how slow and bloated Visual Studio is today. No wonder why programmers need the best PC possible. My core development tools (Powerbasic and my GUI framework with its own Visual Designer) allows me to quickly write apps on almost PC I have around the house. Give me an old Windows 98 computer with 64 meg Ram (not GB) and I likely still could code on it with acceptable speed of development.
There are "real" C programmers today, that their entire development system would likely run on a PC which Visual Studio developers could even get their development tools to install on, none the less actual run.
I was actually one of those college students who when given a choice to punch out Fortran cards or code in a Basic interpreter on a green screened Terminal, was amazed at how quickly I could write code in that Terminal using simple old Basic. I don't use an interpreter anymore. I use a native code compiler for Windows, which allows me to compile at lightning speeds even tens of thousands of lines of code. I barely have time to take on sip of soda (not a coffee drinker) during the compile cycle for 50,000 lines of code, none the the less take a coffee break. Install the latest Visual Studio (if even possible) onto a PC with only 4 GB ram and less than a core i3 CPU) and with no SSD and see how long it takes you to to even run VS, none the less compile app of significant size.
OOP adds overhead to an app and also makes following code flow more challenging. Read an interesting blog post by an engineer at Intel on Intel's website about the significant problems object oriented coding brings when trying to debug code.
|
|
|
|
|
C++ is not an OO language. It is a multiparadigm language. Someone taught you C++ poorly, from the sounds of it.
I don't even use OO in C++ that often. I use generic programming
Again, I don't care about OO, GP, or whichever paradigm you use. I challenge you to produce one piece of C code that generates assembly that I cannot write in C++.
And OO doesn't produce any overhead you don't ask for.
Real programmers use butterflies
|
|
|
|
|
Perl and Python I have no use for, nor do I want to learn them. I've looked at them enough to know I don't like them. I've developed in Java and made a few products with it at a previous job, and I never want to touch it again if I can help it.
I grew up on BASIC with the commodore64, Apple II, and old IBM clones. It was a fun language to get started in, and sparked my interest in how computers actually worked, so I dived in deeper for harder languages.
the old BASIC is nothing like modern derivatives, beyond the name and some of the keywords.
I don't mind JavaScript, it's interesting, (fun and frustrating at times) and definitely has it's place. The same with C, it has it's place also. If anyone tries making a JS enabled microcontroller, they need their ass kicked, or a C script runtime for web development.
I've picked up assembly just for the knowledge of it, since there are times in the embedded world that dropping down into assembly is helpful.
I picked up ADA at my last job, it was used to program some scientific equipment oddly enough. I've played around with COBAL a bit and I don't hate it. I love D-lang but I'm afraid it won't ever hit main stream. Rust is awesome, but it's a 180° from JavaScript that I have to use daily, so it takes a minute to get back in the flow.
To each their own
|
|
|
|
|
Matt McGuire wrote: To each their own
Definitely. I have my opinions, but while I might sideeye a Perl developer the same way I wonder about what makes people pursue podiatry as a profession I won't judge them for it. *Somebody* has to code in the damn thing, after all.
As far as basic, I came up the same way you did it sounds like. Good old Applesoft BASIC in my case. I'm glad that was "the bad old days" and not today.
Still, line delimited languages give me a rash.
And VB.NET's syntax with respect to things like lambdas leave me googling all the time because the syntax is nonsense, and clearly a bag on the side - it wasn't designed with them in mind but rather added to the grammar after the fact and it shows.
There are sadly, folks who think running a scripting language (JS, Python), or a GC language (C#) on a 360kB system at 160MHz is a good idea. I am not one of those people. For starters, I don't care about RAD on an IoT device. I care about battery life.
Real programmers use butterflies
|
|
|
|
|
honey the codewitch wrote: I don't care about RAD on an IoT device. I care about battery life.
pretty much the same, and keeping as close to real time as possible on those little chips.
|
|
|
|
|
I'm going to be Devil's Advocate
I really like JavaScript / Typescript. Not because the language is the epitome of a well planned, cleanly architected, unambiguous and approachable language all kids should learn. It's not. It's a dog's breakfast. But because it works everywhere, it's not being owned by anyone, there's almost no religious wars going on around it, and because it's powerful, forgiving, and if you had to learn one language this one would be it. Full stack, front to back, every device (almost), every platform.
I also like and respect Python. Again: not what one would consider the cleanest, sanest evolution of a language, but it, like JavaScript, works pretty much everywhere, has a huge following, masses of libraries, and most importantly, is a great language for those who want to generate results rather than become artists. The difference between building a deck so you can have a BBQ as opposed to building a fully automated food preparation machine. I just want my burger and a beer and I don't need to understand structural engineering to get this thing completed.
Sure, Python is weird about spaces, but C-like languages are equally weird about closing brackets, and let's fact it - we all indent our code anyway. Maybe it was the 5 years in Purgatory doing FORTRAN that softened me but I find teaching a student how to code if/then statements or loops using Python to be less distracting than brackets for someone who's never seen code before.
My pet peeve: convention over configuration. It's like having to geek out and understand the backstory of all the characters in a movie, deeply, before you can sit down and watch the movie. The constant "WTF is going on?" with things like Entity Framework, for instance, just kills my soul every time I realise that if I'm to step off that very, very narrow line they've set, there will be Pain and there will be Misery.
cheers
Chris Maunder
|
|
|
|
|
Typescript I am okay with.
My problem with significant whitespace is this:
Some editors convert spaces to tabs, and so do web pages. Some don't.
Yes, I copy and paste. My own code. Sometimes other people's and from a variety of sources.
If my editor isn't "smart" what happens to my python script?
Real programmers use butterflies
|
|
|
|
|
Which editor do you use? I feel a little ignorant in saying I've never used an editor that does that. And I would probably uninstall it if it did! (too many years editing code blocks for CodeProject)
cheers
Chris Maunder
|
|
|
|
|
Visual Studio has an option to do it, as do some text editors I've used under linux (not remembering which ones offhand, one ships with Ubuntu)
But even if an editor doesn't, a web page will. Try copying from codeproject into a python script where you're using tabs (CP uses spaces for all of its indented code as far as I know)
EDIT: Oops I meant tabs to spaces!
Real programmers use butterflies
|
|
|
|
|
If you learn the language's idioms, you won't pick up any bad habits.
Programming languages are like spoken/written languages, you have to think in the language.
If you can treat programming languages like written and spoken languages, you won't pick up any bad habits.
Don't be like this: "You can program Fortran in any language"
~d~
|
|
|
|
|
end rant
only 7k lines of undocumented code with temp*this and temp*that.
sigh
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
The good C programmers would already have mimicked some C++ capabilities the hard way and would immediately start doing a decent job. The others should just be given bass boats.
|
|
|
|
|
Greg Utas wrote: bass boats concrete boots FTFY
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
CodeWraith wrote: Greg Utas wrote: bass boats concrete boots
Have you no concern for the environment?! The river- and ocean-beds will be covered with used concrete boots!
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
You might use soccer boots to kick their asses instead...
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Or just give'em Python, JavaScript, or other toys for children.
|
|
|
|
|
I dunno. I can think of a few people who would be more useful as starter material for a reef.
Software Zen: delete this;
|
|
|
|
|
Gary R. Wheeler wrote: people who would be more useful as starter material for a reef.
Given their accomplishments in life, their only accomplishments in death would be shipwrecks.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
Honestly I think it's better to learn C++ without learning C first, otherwise Cisms leak into your code, and I say that as someone that learned C first.
Real programmers use butterflies
|
|
|
|
|
I still can't deal with snake_case_variables. It was my life for years but it still gives me the shivers.
I've gone soft since my C++ days, obviously.
cheers
Chris Maunder
|
|
|
|
|
Hey now! I use snake case in GFX. If it's good enough for the STL it's good enough for the rest of us.
Real programmers use butterflies
|
|
|
|
|
I'm going to write a VSCode addin that automatically converts snake case to FORTRAN case. ie every variable gets renamed to be a single letter. When all letters are used we start back at aa, ab etc
cheers
Chris Maunder
|
|
|
|
|
Save me from assembly programmers writing C code.
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
I still have nightmares.
GCS d--(d+) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|