flat assembler
Message board for the users of flat assembler.

flat assembler > Heap > What was your first programming language?

Goto page Previous  1, 2
Author
Thread Post new topic Reply to topic
system error



Joined: 01 Sep 2013
Posts: 671
Tomasz Grysztar wrote:
My first was the BASIC language on Atari 800XE computer. I had this machine borrowed from my elementary school, because it was gathering dust there and nobody knew what to do with it - it had several tapes that apparently had some games on them originally, but after being stored next to the TV in school the tapes became unreadable. So I had only that computer and no other software to run on it beside the BASIC interpreter in ROM. That forced me to learn programming. Smile

After that start my later route was (already on x86 PC): Borland's Turbo Basic -> Turbo Pascal -> inline assembly in Turbo Pascal -> Turbo Assembler -> my own assemblers. Smile


See, see?? This guy here don't use C!! You commoners don't know shit about beautiful languages! Hahaha!
Post 20 Aug 2016, 06:56
View user's profile Send private message Reply with quote
Picnic



Joined: 05 May 2007
Posts: 1244
Location: Icarian Sea
system error wrote:
Seems like almost everybody had early exposure to Basic. Basic is a beautiful language. I dont understand why would people adopt blasphemous curly languages like C when almost ever programmers speaks BASIC, born out of BASIC. Cleaner syntax, powerful library, highly portable and yet you peasants chose satanic languages like C++ and python to solve your worldly problems.


I guess it was another era, the choices were more limited, the resources also, today is more likely a young programmer to start with Javascript or a web related language, or by doing a search in google "In which programming languages are games like GTA written (C++), or Android games (Java).
Post 20 Aug 2016, 07:17
View user's profile Send private message Reply with quote
YONG



Joined: 16 Mar 2005
Posts: 8000
Location: 22° 15' N | 114° 10' E
Picnic wrote:
I guess it was another era, the choices were more limited, the resources also, ...
Reminds me of the punched card era:

Computer programming in the punched card era
https://en.wikipedia.org/wiki/Computer_programming_in_the_punched_card_era

Back in my college days, a professor of mine once talked about how long he and his classmates would have to wait for a program to execute. That was yet another era, I guess!

Wink
Post 20 Aug 2016, 09:31
View user's profile Send private message Visit poster's website Reply with quote
Picnic



Joined: 05 May 2007
Posts: 1244
Location: Icarian Sea
I have a little experience in a kind of punched cards. My speciality during my military service was teletypes. We used various teletype systems for exchanging messages all day. Those systems could read and print punched yellow ribbons 5 dotes per line. Ribbons could reach 10 meters long. Some few were encεyped and must be decrypted with another crypto-device whose cipher were hidden in a safe. sorry for offtopic Smile
Post 20 Aug 2016, 11:42
View user's profile Send private message Reply with quote
YONG



Joined: 16 Mar 2005
Posts: 8000
Location: 22° 15' N | 114° 10' E
Picnic wrote:
My speciality during my military service was teletypes.
Wow, you served in the military! Cool!

Wink
Post 21 Aug 2016, 03:53
View user's profile Send private message Visit poster's website Reply with quote
zhak



Joined: 12 Apr 2005
Posts: 489
Location: Belarus
Mine was BASIC on an old soviet computer "КВОРУМ" (KVORUM), a ZX Spectrum clone
Post 05 Sep 2016, 20:07
View user's profile Send private message Reply with quote
Furs



Joined: 04 Mar 2016
Posts: 1201
system error wrote:
Seems like almost everybody had early exposure to Basic. Basic is a beautiful language. I dont understand why would people adopt blasphemous curly languages like C when almost ever programmers speaks BASIC, born out of BASIC. Cleaner syntax, powerful library, highly portable and yet you peasants chose satanic languages like C++ and python to solve your worldly problems.
Can't agree. My first language was BASIC as well (well, Sinclair BASIC to be exact), but now that I know more I just find it so ugly with CAPS EVERYWHERE. The other ugly thing is verbosity, one thing I also hate from Pascal.

You had to use "LET" to actually assign values. Yuck. In Pascal, assignment is :=

But in C it's simple and beautiful, just x=5; You can put statements on the same line if you want (unlike forced-indentation/newline languages), everything is logical and it's a language close to assembly language while still being High-Level.

C blows every HLL out of the water in versatility and logic. Heck, you can make OOP code with it easily even if it has zero built-in functionality for that (unlike C++). The only ugly thing are function pointers.

Frankly, not a single HLL language should exist other than C. All other tasks that are more "high level" than C should be scripting languages. For compiled programs, it should be C, asm or nothing.

Granted, my second language was C++, which I despised (obviously the OOP and abstraction bullshit), but then I realized C (or the subset of C++) is actually quite beautiful. It was only after I learned assembly that I started to appreciate how good C actually is.


Though I do agree about C++ and python, however, especially python. Don't compare C with those. Oh and I don't care about the "standard libraries" when judging a language. Or any "libraries" for that matter.

Feels like all programmers know these days is to just plug a few library calls together.
Post 05 Sep 2016, 23:28
View user's profile Send private message Reply with quote
Trinitek



Joined: 06 Nov 2011
Posts: 257
Furs wrote:
Frankly, not a single HLL language should exist other than C. All other tasks that are more "high level" than C should be scripting languages. For compiled programs, it should be C, asm or nothing.
What is your opinion of bytecode languages like Java and C#?
Furs wrote:
Granted, my second language was C++, which I despised (obviously the OOP and abstraction bullshit), but then I realized C (or the subset of C++) is actually quite beautiful.

...

Feels like all programmers know these days is to just plug a few library calls together.
Why is it intrinsically wrong for people to string library calls together to accomplish a task? I like using asm to write DOS games or tight pathfinding algorithms as much as most everybody else here, I'm sure, but at the same time, I appreciate how big OOP languages with a lot of libraries allow me to focus on functionality first when I'm working on big projects.
Post 06 Sep 2016, 00:29
View user's profile Send private message Reply with quote
Furs



Joined: 04 Mar 2016
Posts: 1201
Trinitek wrote:
What is your opinion of bytecode languages like Java and C#?
Well those are fine in the sense that they are made for the respective compiled "binary", which is not native to the processor. Java's bytecode is made specifically for Java (or the other way around, doesn't matter), so in this sense it is not "bloated". Now, whether I actually think Java itself is good is another matter (not the language, but the 'instruction set'), though that doesn't have to do with the language.

Same thing for C# -- but I dislike them for different reasons, not just the language.

Trinitek wrote:
Why is it intrinsically wrong for people to string library calls together to accomplish a task? I like using asm to write DOS games or tight pathfinding algorithms as much as most everybody else here, I'm sure, but at the same time, I appreciate how big OOP languages with a lot of libraries allow me to focus on functionality first when I'm working on big projects.
Not intrinsically wrong per se. I mean, if we all wanted to make everything as slim or fast as possible, scripting languages themselves wouldn't exist.

I just can't call those people programmers if that's the only thing they know to do and think it makes them programmers. In fact, in most cases I can't call scripting language programmers as programmers either, because most of the time they barely design anything and just plug a few stuff together. (which is fine, since scripting is supposed to automate your work, but it still doesn't make you a programmer in my opinion)

I mean don't get me wrong those things are fine to ease your work, but if that's the only thing you know how to program then calling yourself a programmer makes absolutely no sense. (I'm talking in general, not referring to you here Wink)

A programmer should, at minimum, require designing his own algorithm (not by plugging library calls together), IMO.
Post 06 Sep 2016, 09:53
View user's profile Send private message Reply with quote
rugxulo



Joined: 09 Aug 2005
Posts: 2290
Location: Usono (aka, USA)
Furs wrote:
My first language was BASIC as well (well, Sinclair BASIC to be exact), but now that I know more I just find it so ugly with CAPS EVERYWHERE. The other ugly thing is verbosity, one thing I also hate from Pascal.


What's so horrible about caps? Hitting "Shift" isn't that hard. (Do you have Emacs pinky?)

Besides, BASIC is (usually) case insensitive, same as Pascal.

But even languages which use caps a lot (e.g. Modula-2 or Oberon for most reserved words) aren't that painful. (Besides, IDE renaming or even unofficial compiler extensions can automatically avoid that, if desired.)

As for verbosity, you mean all the "BEGIN ... END" pairs? Most of the needs for "BEGIN" were removed with Modula-2 (and successors).

Although it's not a full parser (supporting various comments or string literals), I did recently whip up a very simple .sed script to use {{ }} and { } instead, but it only saved me 3% (in one .PAS example). Not really much of an improvement!

Quote:

You had to use "LET" to actually assign values. Yuck. In Pascal, assignment is :=


That was meant to be equivalent to the left arrow, which of course isn't available in standard 7-bit ASCII.

There are languages which can tell via context which you meant to use (assignment or comparison), e.g. REXX. (Oh, and probably most BASICs, too. FreeBASIC is quite nice, but I prefer Pascal.)

Quote:

But in C it's simple and beautiful, just x=5; You can put statements on the same line if you want (unlike forced-indentation/newline languages), everything is logical and it's a language close to assembly language while still being High-Level.


Close to assembly? Hardly. Even Turbo Pascal (and now FPC) had inline assembly, bitwise operators, etc.

Of course, Pascal is ever so slightly higher-level than C. The "pointers only for heap" aspect eventually made it where successor (Oberon) was garbage-collected (by default). Modula-2 (and Oberon) relegated some low-level stuff to "SYSTEM".

Quote:

C blows every HLL out of the water in versatility and logic. Heck, you can make OOP code with it easily even if it has zero built-in functionality for that (unlike C++). The only ugly thing are function pointers.


Turbo Pascal / Delphi / FPC have OOP out of the box. It has better modularity (units, no makefiles needed), better strings (huge/ANSI), and various other features, all without (by default) forcing you to use raw addresses at all (in most cases). Oh, and function pointers are easier to use as well.

Quote:

Frankly, not a single HLL language should exist other than C. All other tasks that are more "high level" than C should be scripting languages. For compiled programs, it should be C, asm or nothing.


Let's not turn this into a pissing match. I still greatly respect C (and even "standard" Pascal(s)), and it can do quite a lot. To say that (Turbo) Pascal has a few "advantages" is mostly true, but that's not enough to eradicate everything else, of course.

I do think FPC can do everything C can do, and I prefer it, but there's no shame in using C (obviously??). I use both: honestly, they're both good.

Quote:

Granted, my second language was C++, which I despised (obviously the OOP and abstraction bullshit), but then I realized C (or the subset of C++) is actually quite beautiful. It was only after I learned assembly that I started to appreciate how good C actually is.


It's good, but it does have some "dark corners" (like all languages). As Bjarne said, "There's only two kinds of languages: those that people bitch about, and those that nobody uses." (He's a very smart dude. I gather that C++ has some virtues too, but I've never bothered to learn it, yet.)

Quote:

Though I do agree about C++ and python, however, especially python. Don't compare C with those. Oh and I don't care about the "standard libraries" when judging a language. Or any "libraries" for that matter.


People rant and rave about Python. I think it's a bit overrated, but I've never used it. Obviously some people like the rapid development, but others hate the (runtime) dynamic typing errors (oh, and the slowness, but I guess Pypy fixes that). Overall I'd prefer REXX, honestly, which is meant to be easy to use "glue" (but also [usually?] slow), but there is no one perfect tool for every situation.

My big complaint about Python would be bootstrapping (bah, everything except Forth sucks here) and version fragmentation, but you can honestly say that about any language (even C or Pascal or Oberon or Modula-2 or Ada or ...)! So it's probably moot (unless they keep breaking things, probably Ruby is worse, dunno).

Some languages have minor advantages for some things. Keep your options open. Don't be a zealot. "Whatever works!" (my motto)
Post 09 Sep 2016, 02:01
View user's profile Send private message Visit poster's website Reply with quote
system error



Joined: 01 Sep 2013
Posts: 671
Hmm well, I'm not getting into the classic debate over whose dick is the shortest or the curliest. Candy Crush was sold for USD5 billion while using Objective-C, btw Very Happy

My point is, BASIC will stay and hopefully someone with great passion can do a much more improved version of BASIC, complete with both high-end and low-end libraries.
Post 10 Sep 2016, 06:32
View user's profile Send private message Reply with quote
rugxulo



Joined: 09 Aug 2005
Posts: 2290
Location: Usono (aka, USA)
Just to (re)clarify (although I'm not trying to rant!), ....

Furs wrote:
Can't agree. My first language was BASIC as well (well, Sinclair BASIC to be exact), but now that I know more I just find it so ugly with CAPS EVERYWHERE. The other ugly thing is verbosity, one thing I also hate from Pascal.

You had to use "LET" to actually assign values. Yuck.

But in C it's simple and beautiful, just x=5; You can put statements on the same line if you want (unlike forced-indentation/newline languages), everything is logical and it's a language close to assembly language while still being High-Level.


I'll admit that the BASIC family is extremely fractured and the so-called (official) "standards" are extremely old, obsolete, and abandoned. But there are a lot of QB-inspired variants, and even then (QB45 was 1988!) it was case insensitive, didn't require line numbers or "let" and could put multiple statements on one line (separated by ':'), even line continuation ('_'). I'm pretty sure it was easy to link to assembly routines too, but some compilers (obviously?) even let you insert inline instructions (not raw opcodes) directly, e.g. FreeBASIC.

FreeBASIC supports several dialects, including "qb" (partially), and an improved default "fb" which cleans up and adds a lot (including OOP although I'm not sure if they 100% finished inheritance yet). It's portable, compiles itself, and can even (optionally) output directly to C code. It's also by default compatible with linking to C libraries. So you can mix those (and more).

Furs wrote:

C blows every HLL out of the water in versatility and logic. Heck, you can make OOP code with it easily even if it has zero built-in functionality for that (unlike C++). The only ugly thing are function pointers.


In case it wasn't obvious, one of the newer languages (that takes simplicity to extremes as a virtue) is Oberon (with its derivatives and variations). They call it "type extension", basically deriving from "RECORD" (re-using same keyword). It was only very minimal additions to the language to support this (type test, type guard), and (besides garbage collection) was the big improvement over Modula-2 (thus no more need for variant records/unions).

Of course, Turbo Pascal 5.5 (and derivatives) supported OOP since 1989, roughly the same timeframe as Oberon. So while Oberon is good (and there are standalone variants and compilers and derivatives), you may have better luck with running Free Pascal.

I don't want to overhype Oberon as it's non-standard and a bit fractured, and obviously not as well supported as C. It may be "too simple" for your needs (although there are offshoots like Component Pascal, Active Oberon, Zonnon).

Although people love it, I think C++ is too ambitious, trying to support too much. Sure, if you really want (need?) exceptions, templates, RTTI, and tons of built-in classes, it may be preferable. (Or something like Ada, obviously.) And of course the compilers are more widespread, mature, tested. Oberon doesn't normally support that (although Delphi added exceptions, not sure about Zonnon).

Furs wrote:

Frankly, not a single HLL language should exist other than C. All other tasks that are more "high level" than C should be scripting languages. For compiled programs, it should be C, asm or nothing.

Granted, my second language was C++, which I despised (obviously the OOP and abstraction bullshit), but then I realized C (or the subset of C++) is actually quite beautiful. It was only after I learned assembly that I started to appreciate how good C actually is.


I think Oberon is a good match to C. Even (old, "tp"/Turbo) Pascal is too. Besides, you can usually link objects together from various languages, if needed. (FPC is good about that.)

If you had said "all programs, especially compilers, should be bootstrap-able in C or assembly", then I'd have agreed with you. It's ridiculous how hard it is to build such things from scratch that should be easy (famous last words!).

Furs wrote:

Though I do agree about C++ and python, however, especially python. Don't compare C with those. Oh and I don't care about the "standard libraries" when judging a language. Or any "libraries" for that matter.

Feels like all programmers know these days is to just plug a few library calls together.


Libraries are very important because most people aren't going to roll their own code for UI, lists, regex, etc. It's true that you shouldn't judge a language proper for that, but some obviously handle it better than others.

Python is still written in C (not counting PyPy), so is Ruby. Even C++ used to have a frontend to output pure C code. At some point most people stopped caring about bootstrapping. (GCC is now written in C++.) Obviously some of these (except Lua, barely??) rely heavily on POSIX, ugh.

I don't think most people want to deal with assembly, but for the compiler writers (at least backend) it's unavoidable.
Post 13 Sep 2016, 22:02
View user's profile Send private message Visit poster's website Reply with quote
nkeck72



Joined: 28 May 2015
Posts: 83
Location: 0000:7C00
My first programming language was BASIC on the C64. From there, I moved to DOS batch scripting/QBASIC, and from there to C and ASM. Since I started NOS in 2015 I have learned Python and Ruby as well.

I don't care too much for Ruby, but as for Python, it's good for making quick hacks to make something work as a proof of concept. If you really want to get into serious development though you are better off with C or ASM (for DOS/Win32, I don't recommend assembling for Win x64 or Linux). For web development, Python definitely holds a place for login/logout scripts, et cetera. Ruby is also widely used for web development, but like I said I don't care too much for using that.

As for library calls, I honestly like a well written library of calls so (like Trinitek mentioned) I can focus on functionality of the program, rather than worry about POSIX compliance or whether or not my regex interpreter is going to work. Operating systems like NOS and DOS and basically any other real mode OS have APIs for a reason: the user's code shouldn't have to rewrite the OS's own I/O code, for example. The point of writing a program is not to rewrite the OS, but to provide functionality for the end user.

_________________
It may look hard, but it won't take long if you take it one byte at a time.

NOS: www.github.com/nkeck720/nos
Post 14 Sep 2016, 12:46
View user's profile Send private message Visit poster's website Reply with quote
ford



Joined: 21 Jan 2010
Posts: 102
In chronological order of learning:

bourne compatible shell -> C -> Ada -> html/css/php/mysql -> asm -> python
Post 12 Oct 2016, 04:44
View user's profile Send private message Visit poster's website Reply with quote
TheRaven



Joined: 22 Apr 2008
Posts: 87
Location: U.S.A.
My first programming language was declarative, HTML; scripting wise though, as declarative is arguable among some, JavaScript.

Working with web design attempting to understand the fundamentals that I would utilize studying Java and C++. Mostly work in assembler and Pascal right now, but dabble in Python and C. Still enjoy web development and from time to time mess around in one of my web IDEs. Also, enjoy PHP and SQL for obvious reasons --pretty much the standard set.

Like many others, I develop for the challenges associated with reasoning system design and fun.

_________________
Nothing is so sought after and often avoided as the truth.
Post 20 Oct 2016, 04:13
View user's profile Send private message Reply with quote
rocketsoft



Joined: 26 Jan 2010
Posts: 171
Mine was Atari 2600 Basic, Atari 800XL Basic,Assembler,Amiga Basic and Assembler, PC Assembler,Tasm,Fasm,and off course my own beloved and frequently updated Rasm.
Post 21 Jan 2018, 23:11
View user's profile Send private message Visit poster's website Reply with quote
ProMiNick



Joined: 24 Mar 2012
Posts: 168
Location: Russian Federation, Sochi
As I remember mine was ERM script of game HoMMIII, than C-like script language of Unreal Engine v1 when I was 16-17 years old,then pascal family, than assembler, than basic.
But early when I was 6-7 years old I played twice in programming on Basic (I think so on Basic), and I don`t remember on what machine - it wasn`t mine computer.
Programming is still game for me, and I like to play it.
Post 22 Jan 2018, 06:58
View user's profile Send private message Send e-mail Reply with quote
TheRaven



Joined: 22 Apr 2008
Posts: 87
Location: U.S.A.
HTML 3.garbage and Javascript.

Couldn't find a C/C++ compiler for Windotes and Eclipse was a huge download for dial up, so went the web route for a while. Did have some exposure to BASIC (Amiga 500 [watching a roommate go at it]) then ran into Liberty & Visual BASIC.
Post 11 Feb 2018, 02:57
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum


Copyright © 1999-2018, Tomasz Grysztar.

Powered by rwasa.