My new programming language 'Iggy'

I want to create a new absolutely “perfect” language. I know it’s impossible, but I’ll try. In order to make a programming language “ideal”, write what you don’t like in modern languages, from the speed of interpretation to such trifles as “:=” instead of “=”. I’ll try to read all problems.

2 Likes

You can’t create a “perfect” language. You can’t add everyone’s features. You just can’t make everyone like a programming language, cause we’re all different and like our own things.

That being said, features I think would be good:

  • Curly braces: I have never heard of anyone who prefers meaningful white space over curly braces.
  • OOP: You don’t have to use OOP, but if you want, you can.

And things I don’t think you should add:

  • Semicolons: Whyyy? Even if someone wants semicolons, they can live without 'em. If you want, you can make them optional like JS and Python.
  • Too much boilerplate: Please don’t make your language like Java. If you want to make it like that, though, take a look at C# and get your inspiration from there.

That’s all I can think of right now.

6 Likes

The perfect language is fast and memory safe, yet simple and easy to understand. If this was possible it would be done already. Although i guess you could try to add a lot of generally liked language features, but it usually doesnt get any better than that.

4 Likes

Of course:
python:

if True:
    code # may cause TabError or IntendationError

C:

if(true){
    code
}

iggy:

if true{
    code
}
4 Likes

Iggy is transcompiled (compiles to D), object-orient and case-insensitive language. It cannot be slow because speed, ease of writing code and objects (hashes) from javascript with key overloading is the main features in Iggy. By the way, thanks for the several criteria.

2 Likes

Sorry, what’s D?
Also, what is Iggy written in?

1 Like

What about adding a “must” statement like this:

a = 6
b = [8, 6, 9]

len(b) must be 3 | 4

b = [6, 8, 5, 6]

b.append(9) // PermissionError because len(b) is not 3 or 4

b[0] == a must be

b[0] = 4 // PermissionError because b[0] != a

D is a “new C++” with nested functions and classes.

Is it supported on Replit?

I’ll write Iggy on Slang (my programming language for making languages) that was written in Crystal.

Wow, that’s a lot of languages!
@NataliaKazakiev I meant is D a language you can code in on Replit?

2 Likes

Yes because C++ and D have very similar syntax. I am half-master on C++

2 Likes

Back to Iggy, are you gonna make a collab?
Do you think you can get it done by 1 October? @SnakeyKing is hosting a programming language jam.

I don’t know. First I want to make transcompiled (compiles to js) programming language N for my game engine GameBerry. I would be glad if someone wants to help me make the GameBerry framework itself or the game engine web interface.

I suggest you take one project at a time.

2 Likes

eww if you make style guidelines please make sure this isn’t recommended and there should be a space

if true {
    // ...
}

That name is already taken

1 Like

Yes of course. Im just wondering what method of memory management your planning on using?

I think he changed the deadline to September the 1st, so it might be a bit late to try and enter that

1 Like

Wasn’t it the other way around? Went from September to October right?

It changed to 1 September

No

2 Likes