PDA

View Full Version : Brand new Language



ub520
July 18th, 2007, 09:19 PM
there have been many Languages made in the past I'm trying to learn C/C++ but I'll probably need help with this project

This is what i've noticed
C is hard and clunky not good for large programes
C++ is Huge and really hard to learn + impractical for doing stuff on your own.
Basic is simple to code in but is somwhat clunky like c
pascal is slow
python isn't clunky but not adaquit for 3d games
assembly has obvious problems
C# is better than C/C++ but is still not the best for beginners
visualbasic is oo but is really bad it stinks
sooo......

why not make a new language something fast and easy
but the real problem is can we actually make it?
I don't have an answer but hey we ought to try

first step Prosideral structured or OO

phizikal
July 18th, 2007, 09:21 PM
That would be great, I want an all arround and very compatable.

:D

Lord Illidan
July 18th, 2007, 09:22 PM
D?

As an aside, C++ is not that hard..learning it on my own with a textbook.

vambo
July 18th, 2007, 09:24 PM
there have been many Languages made in the past I'm trying to learn C/C++ but I'll probably need help with this project

This is what i've noticed
C is hard and clunky not good for large programes
C++ is Huge and really hard to learn + impractical for doing stuff on your own.
Basic is simple to code in but is somwhat clunky like c
pascal is slow
python isn't clunky but not adaquit for 3d games
assembly has obvious problems
C# is better than C/C++ but is still not the best for beginners
visualbasic is oo but is really bad it stinks
sooo......

why not make a new language something fast and easy
but the real problem is can we actually make it?
I don't have an answer but hey we ought to try

first step Prosideral structured or OO


Not seen much c code then?

ub520
July 18th, 2007, 09:28 PM
yes I have seen a good deal of c code.
but C++ still can be larger and retain some readability
D is bad i've allready looked at it and suffers from being complex like c/C++

I wan't something that is easier

avik
July 18th, 2007, 09:28 PM
C++ is Huge and really hard to learn + impractical for doing stuff on your own.


Actually, C++ is simple to learn once you know C, or even knowhow to program in other languages. Granted, the features seem grafted on, but that hasn't stopped the game development community from adopting.

xavier_r
July 18th, 2007, 09:32 PM
To start with I can help with some ideas..
I had did this college project called ALX(Algorithm eXtended)...
What it does is you write a program in ALX syntax... an it Converts it to C, C++, Java, Php whatever u want...
So basically u only need to write the algorithm... and it converts it to your programming language...

The point is...
We dont need any more languages...
But we need something to care of it all...

ALX did that...
Its a pseudo-code... one that covers all...

if u need clarification compare this:
think -> make algorithms -> program it -> compile it -> run it

What ALX did was...
think-> make algorithm -> ALX generates program -> compile it -> run it

So basically you dont need to learn all languages, but only ALX...

ub520
July 18th, 2007, 09:36 PM
well thats an interesting idea.

so you make a program like this one

start

srt_ln "HI world I'm soooo delighted to meet you!"

end

and it does the equivilent code in C++?
Very interesting....

vambo
July 18th, 2007, 09:41 PM
So basically u only need to write the algorithm... and it converts it to your programming language...


I think you had best have a look at the Church-Turing theorem first

lisati
July 18th, 2007, 09:41 PM
To start with I can help with some ideas..
I had did this college project called ALX(Algorithm eXtended)...
What it does is you write a program in ALX syntax... an it Converts it to C, C++, Java, Php whatever u want...
So basically u only need to write the algorithm... and it converts it to your programming language...

The point is...
We dont need any more languages...
But we need something to care of it all...

ALX did that...
Its a pseudo-code... one that covers all...

if u need clarification compare this:
think -> make algorithms -> program it -> compile it -> run it

What ALX did was...
think-> make algorithm -> ALX generates program -> compile it -> run it

So basically you dont need to learn all languages, but only ALX...

Sounds like ALX does some things similar to BCX and its predecessor BASM (groups.yahoo.com/group/bcx)

blueEbola
July 18th, 2007, 09:46 PM
there have been many Languages made in the past I'm trying to learn C/C++ but I'll probably need help with this project

This is what i've noticed
C is hard and clunky not good for large programes
C++ is Huge and really hard to learn + impractical for doing stuff on your own.
Basic is simple to code in but is somwhat clunky like c
pascal is slow
python isn't clunky but not adaquit for 3d games
assembly has obvious problems
C# is better than C/C++ but is still not the best for beginners
visualbasic is oo but is really bad it stinks
sooo......

why not make a new language something fast and easy
but the real problem is can we actually make it?
I don't have an answer but hey we ought to try

first step Prosideral structured or OO

Before C++ became common, C was used to make plenty of huge programs. Look at the source of the earlier iD games .. IIRC the original Doom and Quake were both coded in C (someone correct me if I'm wrong!). Look at the Linux kernel!

You seem to be associating languages with speed of execution. Any language can be made fast. It's the implementation of that language that matters.

Pascal isn't necessarily slow. With the right implementation, it could probably be as fast as C. Same thing goes for BASIC -- A long time ago I used PowerBASIC on Windows and that thing produced incredibly small executables that were pretty darn fast. More often than not it's the implementation that is the bottle neck in speed, not the language itself.

Great design and optimization are the #1 factors in producing a fast executing program.

If you're still having trouble learning C/C++, I suggest you put 3D games on the back burner for a bit. Learn another language first, such as Python or C#. As soon as you understand those languages well, make your way to learning C/C++.

Lord Illidan
July 18th, 2007, 09:51 PM
If not D, how about E?

Or else, Brainf***

Wybiral
July 18th, 2007, 09:55 PM
I don't think C or C++ are hard at all... Or clunky...

And why can't python be used for 3d games again?

vambo
July 18th, 2007, 09:57 PM
If not D, how about E?

Give us an F and a G and we have ourselves a tune ;)

Or else, Brainf***

Indeed!!

cmat
July 18th, 2007, 10:13 PM
All I really want is to make GUI programs a lot more easily in Python and C++, and make them cross platform. Really C++ is crazy easy for small command-line applications, no one should have to much problem with it if they took the time to learn it from scratch and then reverse engineer existing programs to see how the concepts are applied. You need to take small steps before you can make the leap to things like game programming. I was making calculators and database apps for a long time and I'm still not a guru.

ub520
July 18th, 2007, 11:31 PM
Ok a this might be a converter type thing
possibly the same way darkbasic pro compiles to assembly

first

I think the syntax sould look something like this.

start


make obj sphere(objectname2)
if kb_up=1 then mv obj(objectname2) dir,180
if kb_down=1 then mv obj(obectname2) dir,0

end

if you can't guess this would make a sphere in a 3d environment and move it back and forth.

the syntax is probably stupid but hey hopefully someone likes it.

btw i"m going to call this anti-scream

xavier_r
July 18th, 2007, 11:37 PM
Sounds like ALX does some things similar to BCX and its predecessor BASM (groups.yahoo.com/group/bcx)

BCX is just one Basic to C...
ALX is many...
You can have ALX to Java/C/C++/PHP simultaneously at the same time...

And BCX is a language...
ALX is not a language...
Its pseudo-code...

lisati
July 18th, 2007, 11:39 PM
You are minimalizing the concept...
BCX is just one Basic to C...
ALX is many...
You can have ALX to Java/C/C++/PHP simultaneously at the same time...

Sorry, that wasn't my intent........

AlexThomson_NZ
July 19th, 2007, 02:48 AM
start


make obj sphere(objectname2)
if kb_up=1 then mv obj(objectname2) dir,180
if kb_down=1 then mv obj(obectname2) dir,0

end


And that's fine for moving a sphere up and down, but what about using shader-models? stencils? Is the sphere rendered on the desktop? in a window? fullscreen? When will it be rendered?

My point is, you can't abstract too much without sacrificing flexibility

AlexThomson_NZ
July 19th, 2007, 02:55 AM
This is what i've noticed
C is hard and clunky not good for large programes
C++ is Huge and really hard to learn + impractical for doing stuff on your own.
Basic is simple to code in but is somwhat clunky like c
pascal is slow
python isn't clunky but not adaquit for 3d games
assembly has obvious problems
C# is better than C/C++ but is still not the best for beginners
visualbasic is oo but is really bad it stinks


I disagree with pretty much all of your list!

Pick a tool suited to the task you are trying to perform, spend some time learning it and practising with it. If you find some parts are unnecessarily complex/unwieldy (GtkTreeView, I'm looking at you!), write a simple wrapper to take the dredge out of using it.

It is my first instinct too when learning a new language to think "I could make this soo much simpler!", but I always seem to find that once you are familiar with it, all the extra bits do actually serve a purpose.

Wybiral
July 19th, 2007, 02:56 AM
Ok a this might be a converter type thing
possibly the same way darkbasic pro compiles to assembly

first

I think the syntax sould look something like this.

start


make obj sphere(objectname2)
if kb_up=1 then mv obj(objectname2) dir,180
if kb_down=1 then mv obj(obectname2) dir,0

end

if you can't guess this would make a sphere in a 3d environment and move it back and forth.

the syntax is probably stupid but hey hopefully someone likes it.

btw i"m going to call this anti-scream

Why bother writing another language, just use a library in C, C++, or Python...

You want those functions for Python? I will write you a module...

Want them for C? I'll just write a couple of functions...

With just a couple of custom functions I could use similar structure in C...


obj *objectname2;
make_obj_sphere(&objectname2);
if(kb_up) mv_obj(objectname2,180);
if(kb_down) mv_obj(obectname2, 0);

pmasiar
July 19th, 2007, 04:20 PM
python isn't clunky but not adaquit for 3d games


You know this from your own experience, or you just repeat it after by some clueless person?

When you learn more about programming, you will know what wise men said: (premature optimization is the root of all evil)

Knuth: premature optimization is the root of all evil
Pike: Bottlenecks occur in surprising places, so don't try to second guess and put in a speed hack until you have proven that's where the bottleneck is.

Learn programming first, learn how to find the bottleneck, and *then* you can start thinking about optimization. If your code doesn't work correctly, there is no point optimizing it: it will do wrong thing, faster. :-)

And BTW, there *are* *commercial* games written in Python, just FYI. Just call optimized C library for speed.

7Priest7
July 19th, 2007, 05:24 PM
Try Alice
http://www.alice.org/

If that isnt easy enough
go for GameMaker
http://www.yoyogames.com/gamemaker/

They are easy and may be what you want
They are not for Linux...
But If you think Basic is bad you shouldent be using Linux...
As Windows is the most user friendly...

Hope I helped

Alex

EDIT: My Mistake I checked alice is supported on Linux

LaRoza
July 19th, 2007, 05:27 PM
All programming languages were made to solve a specific problem.

As for the arguments against the other languages, try learning Assembly to see what programming languages really are. If you move too far away from Assembly, you sacrifice a lot.

7Priest7
July 19th, 2007, 05:30 PM
All programming languages were made to solve a specific problem.

As for the arguments against the other languages, try learning Assembly to see what programming languages really are. If you move too far away from Assembly, you sacrifice a lot.

There are alot of people who are not capable of learning assembly
If he/she finds C and C++ hard think how he/she would do on Assembly

LaRoza
July 19th, 2007, 05:37 PM
There are alot of people who are not capable of learning assembly
If he/she finds C and C++ hard think how he/she would do on Assembly

Assembly is good to learn about just to know how programs really operate under the hood. People seem to forget that C and C++ (and all languages) are meant for humans to read, not computers.

This is not the best way to really understand computers:


print "Hello world"

However, this allows for a greater appreciation (even if it never used):


section .data
hw: db 'Hello world!',10 character
hL: equ $-hello

section .bss

section .text
global _start

_start:
mov eax,4
mov ebx,1
mov ecx,hw
mov edx,hL

int 80h

mov eax,1
mov ebx,0
int 80h

ub520
July 19th, 2007, 06:11 PM
look I'm trying to learn c++
but how in the WORLD DO YOU MAKE A LIBRARY???
It would be rather cool to simplify C++ for my needs but I can't make a Library to do so.

life would be soooooo much easier if I could turn C++ into something easier.
well if anybody can teach me this secret I would be pleased.

BTW assembly has Obvious problems. I could not possibly make a game in THAT!
I mean if thats hard what in the world the code for a cube look like??

pmasiar
July 19th, 2007, 06:38 PM
life would be soooooo much easier if I could turn C++ into something easier.?

learn Python first. It takes care of many details you need to handle yourself in C++, exactly like C/C++ handles many details which you need to handle yourself in ASM. In a sense, Python is to C what is C to ASM. Higher level of abstraction.

After you have better idea what is going on, you can learn C, and even ASM. It is just more and more details you need to handle yourself.

cmat
July 19th, 2007, 06:38 PM
Learn the language first before you even have to know how to make a library. If you've been using darkBASIC and stuff like BASIC. Prepare for a bumpy start. C is profoundly different and your knowledge of programming is going to need a major rewrite.

digitalbenji
July 19th, 2007, 06:43 PM
if you think that c++ is too hard to learn, good luck writing a programming language!

Wybiral
July 19th, 2007, 07:12 PM
look I'm trying to learn c++
but how in the WORLD DO YOU MAKE A LIBRARY???
It would be rather cool to simplify C++ for my needs but I can't make a Library to do so.

life would be soooooo much easier if I could turn C++ into something easier.
well if anybody can teach me this secret I would be pleased.

BTW assembly has Obvious problems. I could not possibly make a game in THAT!
I mean if thats hard what in the world the code for a cube look like??

A library is just a collection of functions/classes for a specific goal (such as games or graphics). You need to learn to use C++, then you can package your code into small modules and use them throughout your projects.

Note360
July 19th, 2007, 07:58 PM
I am sorry, but from my point of view this whole topic is

"I am to lazy to learn a new language so make one I can understand for me"

LaRoza
July 19th, 2007, 08:14 PM
BTW assembly has Obvious problems. I could not possibly make a game in THAT!
I mean if thats hard what in the world the code for a cube look like??

What problems? Those who don't know the language seem to find the most fault with it. If you don't know it, you couldn't make anything in it. What is hard about it? It is very simple, but it requires a deeper understanding of the computer.If you understand how assembly works, you understand how C works, if you understand how C works, you understand how Python works, (which is written in C), if you can understand how Python works...

There is no "easy" route, if you aren't willing to learn the language, and learn how to use it, don't ask for a simpler language.

aks44
July 19th, 2007, 08:59 PM
I am sorry, but from my point of view this whole topic is

"I am to lazy to learn a new language so make one I can understand for me"

+1

However there is ONE issue which is yet not addressed correctly by current languages : concurrency.

Fortunately some very competent people are working on it (albeit they work for MSFT, noone is perfect :(). See Herb Sutter's Concur work...

EDIT: as far as I understand, when it is ready it should be delivered as an extension to the mainstream languages.

pmasiar
July 19th, 2007, 09:21 PM
ONE issue which is yet not addressed correctly by current languages : concurrency.... it should be delivered as an extension to the mainstream languages.

yeah, concurrency (http://en.wikipedia.org/wiki/Concurrent_computing) is next paradigm shift (http://en.wikipedia.org/wiki/Paradigm#Paradigm_shifts) - with multicore CPUs instead of faster single CPU. Learning it will be much pain - concurrency is really hard. Smart people suggest that erlang (http://en.wikipedia.org/wiki/Erlang_%28programming_language%29) is the right way to handle it. I read about phone OS (to route phone calls) in erlang, which was unavailable for 30 ms a year.

I am not sure that mainstream languages like C# and Java will be easy to coax to concurrency: whole point of erlang is "share-nothing" processing where function call can (and does) fail. We shall see.

aks44
July 19th, 2007, 10:02 PM
Well, from the few I read about Erlang, its concurrency kinda looks like Sutter's "active objects". I have to admit it's the first time I hear about Erlang so my POV may not be complete.

Anyway, I guess we all agree on the fact that we desperately need a new way of handling concurrency.
Current lock-based models are way too unstable and/or complicated to be of any usefulness at big scales. OTOH, message-based concurrency is pretty stable and doesn't perform *too* bad (it's quite slow anyway).

I'm currently interrested in transactional memory (lock-free), which looks promising but is way too slow for now (amongst other things it requires deep copies).