123
-=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- (c) WidthPadding Industries 1987 0|678|0 -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=-
Socoder -> Mini Challenges -> Design : Programming Languages

Sat, 03 Jul 2010, 21:50
JL235
Whatever your favorite language, I hope we can mostly agree that it would be very sad if the current programming languages are the ultimate in programming. That there is no more development needed. So presuming you had an infinite amount of resources and productivity available, what features would you like to see in future languages? This could be a minor feature (like mine below) or a big sweeping change to the way we program.

Something minor I'd like to see in static C-style languages is something from Occam-Pi, syntax for allowing you to specify the type of many parameters. Where rather then having to specify the type for each parameter like:

You could instead just write it once, and all following parameters have the same type, like:

A very minor change, but to me it would save lots of typing.
Sat, 03 Jul 2010, 23:06
Cower
syntax for allowing you to specify the type of many parameters.

We've got that in ooc.


It's pretty handy.

As for what I'd like to see in languages, probably more stuff built-in entirely for multithreading. Right now I have to go through an API like libdispatch or pthreads to have some degree of concurrency in the execution of my code, and while libdispatch and Clang in particular have made this several times easier to do, it still seems like more work than I ought to do. Far as I can tell, Go has addressed this pretty well with goroutines and channels and so on, where there's really not a lot of work you have to do in order to keep things clean (provided you're not stupid like I usually am), so I figure seeing more of what Go does in that area in other languages would be a good thing.

Would also like to see better support for variadic functions. As it stands, support for these is pretty awful in most languages. Lua does it nicely, but it has the benefit of being interpreted (although you can use LuaJIT to compile it to some other form).
Sun, 04 Jul 2010, 19:55
JL235
Cower As for what I'd like to see in languages, probably more stuff built-in entirely for multithreading. Right now I have to go through an API like libdispatch or pthreads to have some degree of concurrency in the execution of my code, and while libdispatch and Clang in particular have made this several times easier to do, it still seems like more work than I ought to do. Far as I can tell, Go has addressed this pretty well with goroutines and channels and so on, where there's really not a lot of work you have to do in order to keep things clean (provided you're not stupid like I usually am), so I figure seeing more of what Go does in that area in other languages would be a good thing.
I'd like to see better support too for concurrent programming, but more support for concurrency in object-oriented systems. A lot of the Go stuff though (like Goroutines and channels) have existed for years in Occam. Channels are nice, but with Occam-Pi I found myself writing a lot of boiler plate code for working with them. The same with Erlang's message passing. I would like to see more work in hiding the communication primitives away so you didn't have to use them explicitly.
Sun, 04 Jul 2010, 22:51
Stealth
I want a language that can do this:



In seriousness, I just want a language that can make my mundane coding quicker.

-=-=-
Quit posting and try Google.
Mon, 05 Jul 2010, 18:10
CodersRule
I was about to say that, then Stealth popped up.
Tue, 06 Jul 2010, 05:24
mindstorm8191
I like Cower's idea. With the increasingly common use of multi-processor PCs multithreading will become much more important for programmers. Multithreadsing should be as easy as possible; it would be nice to be able to do something like


And that would make it a piece of cake to be loading game content while the player watches intro videos. Sharing data between threads should be much smoother too; I should be able to declare something threadshared, and be able to read it from other threads as if it were an object variable.

Another thing, I've never been a fan of object-oriented programming. Maybe its alot easier for groups to program with them, but for me its much too easy for your code to become way too complex without a complete design in place, and following other peoples' OOP code is impossible. Cower, I believe you like writing obfuscated code, but I'd like a language where writing obfuscated is difficult or impossible. I mean, there's plenty enough complicated stuff I need to worry about, nevermind the OOP tricks.

Just my two cents

-=-=-
Vesuvius web game
Tue, 06 Jul 2010, 05:55
Jayenkai
I didn't want to join this thread, thinking I'd just be saying "WTF's wrong with Blitz?!" again, like I usually do.

And, honestly, still thinking that.

Instead, I'll take the time to suggest, again, that it's about time someone made a brand new fantastic looking 2D screen emulation thing.
Try making a game on the DS, and you get access to some neat whizzy 2D tricks.
Massive tilemaps, 4 of them + 128 additional sprites, all whooshing about fast as can be..
Twice!! (2 screens = 8 tilemaps + 256 sprites)

Yet, in any half-decent language on the PC, I'd struggle to get 2 tilemaps.. Never mind 8 of 'em!!

It baffles me that that's a complicated thing to do, and yet for some inexplicable reason, you can run a DS Emulator and..
well.. there it is!
8 tilemaps, 256 sprites.
And it can scale them up with neat HQ2X style screen sizing, and add weird filters and things, too!

Why can't my PC games do that?!
It's the same system, and yet I can't do ANYTHING like that!?!!

Gimme that.
Sod faffing about with crazy-ass language formats.
Just gimme-da-codez for 2D stuff!

-=-=-
''Load, Next List!''
Wed, 07 Jul 2010, 04:30
mindstorm8191
Jay, I think the biggest difference between using an emulator and writing code to do it is graphics hardware support. Pushing all this through the processor can be quite difficult, and a graphics card is better suited for such tasks.

But I fully see your point. Not only is language features like control flow and syntax important, but the ease of use of tools for that language is vital. Most languages like to use external libraries, and toss things like 2D graphics, GUI, networking, even file operations, into these libraries. Blitz is the only language I've seen that includes these higher level commands in the language (and does it well). So I'm with you Jay, give me the tools to actually do something!

-=-=-
Vesuvius web game
Wed, 07 Jul 2010, 12:14
Stealth
I realized what I want. I want a compiler/debugger that doesn't give me cryptic error codes.

I'm tired of scratching my head wonder what the hell it's trying to tell me.

-=-=-
Quit posting and try Google.
Wed, 07 Jul 2010, 13:46
Jayenkai
Lol, yeah..

Oh, and ... If you know it's missing a semicolon, ASSUME THERE IS ONE!!!!!

-=-=-
''Load, Next List!''
Wed, 07 Jul 2010, 20:41
mindstorm8191
Yeah! Or, why not just pop up an error "hey, shouldn't there be a semicolon here?"

Wait wait, let me rant here for a bit. This is what I hated so much about working with C and C++. You write a bit of code, not sure if it works, and the compiler throws about 30 errors for a single line of code. What does it all mean? Who knows!

Give me a language where the complier actually cares enough to help you debug your code. Cryptic error messages may as well be random compiler crashes. I don't think that's too much to ask for.

-=-=-
Vesuvius web game
Wed, 07 Jul 2010, 20:47
CodersRule
Yeah! Or, why not just pop up an error "hey, shouldn't there be a semicolon here?"


Nono, that's Jay's point. I can remember in the shoutbox a year ago he was complaining that a certain language knew exactly where a semicolon should be, and told the user where to put it, but didn't assume there was one there.
It's annoyed me too.

I think in JS you're technically still supposed to use semicolons, but it ignores it if you don't have the semicolon and it recognizes that it's supposed to be there. That's what Jay wants.

That's what everybody wants.
Wed, 07 Jul 2010, 21:15
HoboBen
Nah, if your semicolons are automatic, you can't do this:



When you're scripting webpages, and doing all sorts of stuff to string data, it's nice to be able to lay it out.

-=-=-
blog | work | code | more code
Wed, 07 Jul 2010, 21:18
CodersRule
You have a point. I love doing that.

But I never bother, because half the languages I use don't allow it.
Thu, 08 Jul 2010, 01:15
Jayenkai
In 1980's Basic, you did this...

Print "This..";
print " and this, on the same line,";
print " as well as this.."
print "But this goes later."

or, rather..
Shouldn't it be "Include only where necessary", rather than "Exclude only in the rare occasions where it's necessary"?

-=-=-
''Load, Next List!''
Thu, 08 Jul 2010, 06:07
JL235
@HoboBen There is no reason why a parser can't allow that. But there are lots of other corner-cases where it starts to get tricky.
Thu, 08 Jul 2010, 08:49
Afr0
Jayenkai Why can't my PC games do that?!
It's the same system, and yet I can't do ANYTHING like that!?!!

Gimme that.
Sod faffing about with crazy-ass language formats.
Just gimme-da-codez for 2D stuff!


Blitz can't do that, because it's not fast enough. I'd say you should be able to do it in BlitzMax, but you'd have to roll your own code for PlotPixel() (or whatever the name of that command was) etc. through OpenGL or DirectX, because the existing 2D framework sucks.
And obviously it'd be faster in C or C++...

Edit: Oh yeah, and most, if not all, DS emulators are written in C with ASM optimizations to get a decent framerate. I know there's a Gameboy Color emu written in C# for instance, but in terms of processing power and graphical capabilities, you can almost fit 2 Gameboy Colors into one DS!

Edit: It's probably more like 3 Gameboy Colors for 1 DS, when you consider that the DS actually is capable of rendering 3D graphics as well..

-=-=-
Afr0 Games

Project Dollhouse on Github - Please fork!
Thu, 08 Jul 2010, 09:07
Afr0
As far what I'd like to see in languages, like Stealth I'd like to see less cryptic error messages.
I'd also like to more easily be able to share things from one thread with another.
One thing that should be implemented into Visual Studio would be a live Hex viewer with a blinking cursor that showed where you were in the file (when you're opening a file). It could be activated through a debugging menu or something. THAT would be nice. Obviously it'd only show up as you're debugging the program from within the IDE..

-=-=-
Afr0 Games

Project Dollhouse on Github - Please fork!
Mon, 26 Jul 2010, 06:56
waroffice

Sod faffing about with crazy-ass language formats.
Just gimme-da-codez for 2D stuff!


I would like this too. A decent language that can handle 2D stuff, i use Cobra after a long time using blitz, cobra is faster but not much in the way of documentation, which would be my second point. Strange how my 4ghz machine can just about handle my RPG at 40fps, its 2d FFS!!!!

Documentation that has techniques for programming things rather than just a list of key words are what they do.


Mon, 26 Jul 2010, 13:47
Afr0
Strange how my 4ghz machine can just about handle my RPG at 40fps, its 2d FFS!!!!


I think that's mostly because 2D today isn't regular 2D anymore. I wouldn't know the specifics about Cobra's implementation, but most 2D today is some kind of shader based 2D in 3D.
IIRC Microsoft even stopped supporting DirectDraw from DirectX 10 onwards.

-=-=-
Afr0 Games

Project Dollhouse on Github - Please fork!
Mon, 26 Jul 2010, 17:06
JL235
Afr0 I think that's mostly because 2D today isn't regular 2D anymore. I wouldn't know the specifics about Cobra's implementation, but most 2D today is some kind of shader based 2D in 3D.

If Cobra was using hardware accelerated 2D then it should run far faster then 40fps. I suspect it's probably not, and that's why it's slow.
Mon, 26 Jul 2010, 17:12
HoboBen
It does. It's a problem with the in-built tile engine; no problem if you write your own. I've had >60FPS with real-time blurring on each tile edge.

-=-=-
blog | work | code | more code