flat assembler
Message board for the users of flat assembler.

Index > Heap > What's your favourite programming language and why?

Goto page 1, 2, 3, 4, 5, 6, 7  Next
Author
Thread Post new topic Reply to topic
Gomer73



Joined: 29 Nov 2003
Posts: 151
Gomer73
For me, my two favourite are assembler and basic. Here's my list:

Basic:
Likes:
Like the logic flow. Everything happens as you see it in sequential order.
Nice safe environment, very hard to do anything wrong in basic.
Dislikes:
No real dislikes, except may just can't do low level stuff. Sometimes speed is an issue.

Assembler:
Likes:
Can do anything the computer can do. Everything happens as you type it and follows good sequential order.
Dislikes:
Labels and variables can be awkward, but I think both of these can be fixed with the correct assembler. Fasm is on the way to this, but not quite there. Debugging is the other thing, depending on the assembler, might not be too easy to debug.

C/C++
Likes:
Widely accepted, therefore can be used almost anywhere. Good variable handling if you know how to use it. If rumors are true, can optimize for pipelining on certain compilers.
Dislikes:
Too complicated, too many ways to do the same thing. Too easy to make mistakes. Typos tend to be valid statements. Slow compiling compared with assembler.

Java(or C wanna-be, sorry don't mean to offend anybody)
Likes:
None. The applets are kind of universal, but almost proprietary code and slow, so this disadvantages cancel the advantages. I think there is something going on right now where microsoft has to remove there Java Virtual Machine from their software, unfortunate since I believe it runs much better than the Sun one.
Dislikes:
You have to compile it, and then the compiled version has to be interpreted. Same dislikes as with C only Java has more.

Forth
Likes:
Everybody who has tried it seems to like it. Don't know anything about it so can't say. Like that compiles on the fly.
Dislikes:
Not popular, so I don't really know much about it.

Don't mean to offend anybody with my comments, the way I make my statements is just the easiet way to get my point accross(Java being a C wanna-be says so much even though I am sure it will offend some as well). Just interested in getting some opinions. I have programmed a lot of C in the past, but now doing more assembler because I find it easier to program in. F0dder and Spideros1 illuminated me on some things I didn't know. Just wonder why some people like the languages they program in, or why the reasons for choosing.

My choice right now is assembler, simply because I can compile while working(I answer phones for employment) without installing a bunch of programs and compile fast. Also the best way to program the start of OS's. It also forces me to understand how everything works.

Just curious why others have there likes and why their favourite language is their favourite language.
Post 18 Jul 2004, 19:33
View user's profile Send private message Reply with quote
Gomer73



Joined: 29 Nov 2003
Posts: 151
Gomer73
One other thing that I think that I dislike about C/C++ is the nerd/geek following it attracts.

I am making an OS and will be developing programming languages for it. I could probably create programming languages in asm, basic, and forth and have it designed to my taste.

However, if I created a C/C++ languages, I am sure I would get a lot of people comming out of the woodwork saying that my version isn't ansi C compliant. Or that it doesn't support an instruction that you would use every 100 years. Or that it is ansi C compliant but it should be compliant with the other standard which has better features.

C/C++ tends to attract the nerds/geeks because it has so many tricks in it that they can show off there stuff on. Endre's 3[v] example kind of shows you what I mean, not that I would call Endre a nerd/geek, just that he is knowledgeable.
Post 18 Jul 2004, 19:51
View user's profile Send private message Reply with quote
crc



Joined: 21 Jun 2003
Posts: 637
Location: Penndel, PA [USA]
crc
My personal favorite is RetroForth (not suprising as I'm the developer of it). Forth in general changed the way I approach programming, and I feel that I'm more productive using Forth than I am with any other language. I use assembly to develop/maintain the core, but most of my actual code is written in Forth Smile

The interactive nature is nice. Having both an interpreter and a compiler at hand makes testing words (subroutines) very easy, and the entire language encourages simplicity in algorithims, implementations, etc. If you're worried about RAM useage, a well built DTC Forth can exceed assembly's code density in some cases.
Post 18 Jul 2004, 20:01
View user's profile Send private message Visit poster's website Reply with quote
fasm9



Joined: 19 Jun 2003
Posts: 439
fasm9
i am c-wannabe.

i am interest in how c implemented in asm, great work. nobody break it until now, since 1973 at Bell lab.
Post 18 Jul 2004, 21:03
View user's profile Send private message Reply with quote
Gomer73



Joined: 29 Nov 2003
Posts: 151
Gomer73
For c-wannabe I was kind of referring to Java, it wants to be c, but can't quite do it.

For CRC, what does DTC Forth mean. And what's the best way I can get started on Forth?
Post 18 Jul 2004, 21:37
View user's profile Send private message Reply with quote
f0dder



Joined: 19 Feb 2004
Posts: 3170
Location: Denmark
f0dder
C/C++ (can almost be considered two different languages)
Pros: relatively high-level, relatively low-level. I have a pretty good idea which code will be generated, and I know when there will be a lot of overhead from a statement/call. It's very flexible, and almost everything can be overridden or redefined. Very good compilers are available for the large platforms, the language is available almost everywhere, and it's a "very large language".

Cons: Can be easy to shoot yourself in the foot (though good compilers have good warnings). Can be too low-level when you're dealing with application coding. Since it's one of the most wide-spread languages, there are a lot of bad implementations, and a lot of amateur programmers writing lame code, which gives the language a worse reputation than it deserves. Could benefit from something like pascal's UNIT idea, although it would mean less flexibility. Some users are overly zealous or ignorant, but with the large user base this isn't THAT bad. *u*x users tend to write "least common denominator" code, this isn't too optimal.

Assembly
Pros: full control, lets you utilize the CPU to it's fullest, great fun
Cons: Extremely zealous users, some things (read: math formulas) need a lot more coding than in a HLL, bound to a single platform, (from a "business" point of view) often not worth the time spent.

These two languages fit my needs very well. I'm considering learning some scripting language(s) (perl, python) (to automate things, and to avoid spending a lot of coding time where performance isn't needed). Application-scripting like LUA. Perhaps look into .NET (especially C#) - with the MONO project it's starting to get interesting.

I would stay away from BASIC, I find it to be majorly damaging for the brain. At least I'm not the only one, people like Dijkstra have said so before me Smile

As for other languages, dunno - wish I had the time to study them all, but I don't... so I'll probably never look much at LISP (it looks too alien, users are WAY too zealous), probably won't look at forth (it uses reverse polish notation? :O), et cetera.

Quote:

I am sure I would get a lot of people comming out of the woodwork saying that my version isn't ansi C compliant.

It's easy enough to get a C compiler to be standards-compliant... you have to do something pretty messy to make it not be. Getting a C++ compiler to be ISO compliant, however, is a BIG amount of work. Oh, and apart from the compiler, ANSI/ISO compliance also requires a set of libraries. The libraries aren't that important (at first) though, the *compiler* compliance is.

Quote:

C/C++ tends to attract the nerds/geeks because it has so many tricks in it that they can show off there stuff on. Endre's 3[v] example kind of shows you what I mean, not that I would call Endre a nerd/geek, just that he is knowledgeable.

Idiot show-off geeks will use that kind of code, real programmers wont. And anyway, a thing like "3[v]" is not a special case that you will have to support, it's something that will work automatically if you handle the language grammer correctly.

Quote:

For c-wannabe I was kind of referring to Java, it wants to be c, but can't quite do it.

Rather it wants to be C++, doesn't do the same stuff, and exceeds C++ in some areas (but is worse in others). Current JIT implementations don't reach native speed (though MS beats SUN by a far amount), dunno how GNU native java compiler does. Haven't looked much at JAVA, but from what I've seen it looks like a good introduction to OOP coding, and a good prototyping language. For practical uses, at least on x86, it's performance sucks too much. Guess I'll have to ask my engineering friend how well the dedicated java hardware does, though.
Post 18 Jul 2004, 21:53
View user's profile Send private message Visit poster's website Reply with quote
ASHLEY4



Joined: 28 Apr 2004
Posts: 376
Location: UK
ASHLEY4
Turbo pascal, that was the best compiler/ language,with in line assembly you could do anything in dos, delphi is just not the same.
I would be a pascal programmer, if there was a os like linux is for C, but for pascal (i do not like windows).
Assembly is best of the rest.

ASHLEY4.
Post 19 Jul 2004, 00:29
View user's profile Send private message Reply with quote
f0dder



Joined: 19 Feb 2004
Posts: 3170
Location: Denmark
f0dder
Turbo/Borland pascal was a really fine envrionment for DOS - it was fast (especially compile to / execute from memory), it had a good state-of-the-art debugger, and good context-sensitive help. The PASCAL compiler just wasn't very good though, so you had to use a lot of (B)ASM to get any work done... today, C compilers are good enough you only *need* to use assembly in a few situations (but then it can _certainly_ speed up things a lot).
Post 19 Jul 2004, 01:01
View user's profile Send private message Visit poster's website Reply with quote
fasm9



Joined: 19 Jun 2003
Posts: 439
fasm9
ASHLEY4 wrote:

I would be a pascal programmer, if there was a os like linux is for C, but for pascal (i do not like windows).
Assembly is best of the rest.

ASHLEY4.


Taste these things, if something is not nice, throw away!

Free pascal (linux, dos, windows...)
http://www.freepascal.org

Bluebottle OS
http://bluebottle.ethz.ch

Native Oberon OS
http://www.oberon.ethz.ch

--
note: i don't know pascal!
Had little fun with Qbasic (lissajou+fractal)= this make me newbie ;(
Post 19 Jul 2004, 01:30
View user's profile Send private message Reply with quote
crc



Joined: 21 Jun 2003
Posts: 637
Location: Penndel, PA [USA]
crc
There are different methods of implementing Forth. All make use of threaded code, and there are several methods of threading.

DTC is direct threaded code. It gives you a small inner interpreter that runs through a list of addresses. This is one of the two most commonly used threading models.

STC is subroutine threaded code. This is actual machine code, using CALLs to the subroutines. This is the other of the most common threading models.

ITC is indirect threaded code. It allows for greater flexibility (you can redefine functions and all previous references will be updated to the latest one. It's also pretty complex. ITC was used in FIG-FORTH and many other early Forths.

There are other threading models, but they're seldom seen Smile.

As to getting started with Forth, the best place for help is #forth on irc.freenode.net. The people there (and I'm one of them), are very helpful. You'll need to choose a dialect of Forth. I've used gForth, isForth, ThisForth, and RetroForth. gForth and ThisForth are written in C, and are fairly portable, but it takes a while to learn them. Under Linux, isForth is probably the best choice for a powerful Forth system. RetroForth runs under Linux, FreeBSD, Windows, and BeOS and was designed for new Forth programmers (only 100 words to learn, easy to extend, easy to embed into programs as a scripting language, etc). isForth is DTC, RetroForth uses STC. On a Mac, the only real choice is HerkForth (an unusal Forth system).

A lot of resources (links to standards, tutorials, and nearly every Forth system still online) are http://www.forthfreak.net and http://hog-space.retroforth.org


Last edited by crc on 19 Jul 2004, 19:58; edited 1 time in total
Post 19 Jul 2004, 02:25
View user's profile Send private message Visit poster's website Reply with quote
ASHLEY4



Joined: 28 Apr 2004
Posts: 376
Location: UK
ASHLEY4
Fasm9, thanks for the the links, freepascal is good, but with pascal today you would after keep reinventing the wheel, as every one and his dog programs in C.

ASHLEY4.
Post 19 Jul 2004, 15:38
View user's profile Send private message Reply with quote
pelaillo
Missing in inaction


Joined: 19 Jun 2003
Posts: 878
Location: Colombia
pelaillo
I've started learning Forth today Wink

My favourite language of all times is assembly because it permits me to learn better the machine on its field. It is highly improbable that I will abandon assembly again Smile

I like also Ruby and Perl and I used them regularly.

I don't use C/C++ since a long time ago for my own code but I read, compile and work with other's code. Portability is not a high concern for me: I find it too costly.

I dislike Java for a lot of reasons, but this is part of another story...

I've seen some nice languages, serving to a particular purpose well. Currently I am not using any of them and I believe we could substitute their stronger points with the help of Fasm macros and libraries when needed.

Chapter apart: BASIC

I've used BASIC for a long time and I highly advise somebody against using it, specially for learning. BASIC has an apparent advantage over other languages mainly on string manipulation. But it comes at a cost in performance and storage. String manipulation on assembly is one of the most difficult things for newcommers, but IMHO is for the historical influence of other languages. Once the simple mechanisms involved are understood, there is no other language better for manipulate strings: asm is full control and full possibilities.
The other apparent advantage regards math expressions and floating point manipulations. A good library not only flatten the difference, but with assembly you have full control again.
Regarding development speed, I have nothing to argue. You can code in BASIC using trial-and-error better than assembly, so you code from your mind at a higher speed. But then the result is unacceptable for larger projects because is generally unperformant and difficult to maintain.

We have ASM 3 vs BASIC 0 Very Happy
Post 19 Jul 2004, 16:31
View user's profile Send private message Yahoo Messenger Reply with quote
Ralph



Joined: 04 Oct 2003
Posts: 86
Ralph
Forth is really more of an environment and frame of mind than a language in my opinion. To quote Chuck Moore (the inventor of Forth): "If you have a lot of small definitions you are writing Forth." However, you also have the advantage of being able to use ~30 years of proven and refined technology to help you when needed. Infact, a lot of forths are their own OS with their own editor, compiler, interpreter and more, all integrated as one clean system.
Post 19 Jul 2004, 19:37
View user's profile Send private message Reply with quote
crc



Joined: 21 Jun 2003
Posts: 637
Location: Penndel, PA [USA]
crc
Forth is a loosely defined language. You have a given set of words (: ; dup drop swap) and so on that will be in every Forth system you'll encounter. There's a couple of standards: ANS, FIG, F83, but they aren't really followed. It comes down to personal preference. Most Forth programmers I know have chosen an existing Forth or written their own. Either way, over time they make whatever system they've chosen their own. Forth comes down to two things: words and stacks. As mentioned, words are small subroutines (typically just a line or two in length), and stacks are used for storage, passing values between words, and so on. It's really a beautiful approach once you learn it. Though if you're experienced in "traditional" programming languages, the learning curve can be quite steep as you will have to unlearn some bad habits.
Post 19 Jul 2004, 19:50
View user's profile Send private message Visit poster's website Reply with quote
fasm9



Joined: 19 Jun 2003
Posts: 439
fasm9
ASHLEY4 wrote:
but with pascal today you would after keep reinventing the wheel, as every one and his dog programs in C.

ASHLEY4.


that's good.

then try mono 1.0
mono=c#+ide=java+pascal+c++!

http://www.go-mono.com
http://www.dotgnu.org

--
dotgnu(free) vs mono(another_free)
Post 19 Jul 2004, 19:50
View user's profile Send private message Reply with quote
DennisCGc



Joined: 03 May 2004
Posts: 24
Location: Zoetermeer, The Netherlands
DennisCGc
Simple, assembly, because it's pretty simple Smile
Post 20 Jul 2004, 12:22
View user's profile Send private message MSN Messenger Reply with quote
joachim_neu



Joined: 22 Dec 2003
Posts: 139
joachim_neu
for OSs I use
-ASM:
like: everything is possible; small outputs; fast
delike: difficult; hard to learn; much to write;
for games I use
-BlitzBasic:
like: fast; easy;
delike: big execs
Post 20 Jul 2004, 18:49
View user's profile Send private message Visit poster's website Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia
vid
i really liked Turbo/Borland at DOS times (until i started pure FASM).
I was best for DOS combination of HLL and assembly coding, i just lacked 32bit instructions, had to hardcode them with db 66h.
Post 20 Jul 2004, 19:08
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
OzzY



Joined: 19 Sep 2003
Posts: 1029
Location: Everywhere
OzzY
crc:
I'd like to learn forth and then use your retroforth implementation to code.
Could you point me some good tutorials, please?
Also, can forth access the Win32 API and/or do low level stuff?

Thanks
Post 15 May 2006, 00:52
View user's profile Send private message Reply with quote
silkodyssey



Joined: 02 Oct 2003
Posts: 198
Location: St.Vincent & the Grenadines
silkodyssey
Quote:

Simple, assembly, because it's pretty simple


I like the simplicty of asm as well but it has the unfortunate effect of making HLLs harder to learn. The complexity of modern HLLs frustrate me to the point where I wonder if its worth the torture when there's the simplicity of asm. Smile Even with simple HLLs there is sometimes the problem of limitations where the syntax or nature of the language doesn't allow certain things whereas in asm everything can be done following the basic rules.

_________________
silkodyssey
Post 15 May 2006, 02:37
View user's profile Send private message MSN Messenger Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page 1, 2, 3, 4, 5, 6, 7  Next

< 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-2020, Tomasz Grysztar. Also on YouTube, Twitter.

Website powered by rwasa.