Re: Re: [tsc-devel] Rewrite: Programming language

Ryan Gonzalez | Fri, 06 Oct 2017 20:34:08 UTC

On Fri, Oct 6, 2017 at 1:47 PM, Marvin Gülker <…r@p…> wrote:
> Hi everyone,
>
> my apologies for the late reply. I had a surprisingly busy week.
>
> Am 25. September 2017 um 15:15 Uhr -0500 schrieb Ryan Gonzalez <…9@g…>:
>> Well, I just didn't want to write my next Go rant if that wasn't
>> actually under consideration. ;)
>
> Input is always appreciated, as long as it's useful. Your post does not
> look like you want to start a flamewar.
>
>> Things like the error handling are never problems with small programs,
>> but as they start to grow it becomes an incredibly major hassle.
>
> Go is no different than other languages without exceptions here, but I
> guess this point is then meant in general against such languages. Fair
> enough.

Well, it depends. Many other languages (e.g. Haskell) have ways of
chaining, so you don't have to put as many error checks.

Not that I particularly like exceptions, but I feel like game
development is one of the few places where it actually leads to nicer
code.

>
>> If we're really doing this from scratch, that would mean building a
>> game engine. Lack of operator overloading bites here: instead of
>> things like SFML's nice vector operations (e.g. obj.getPosition() +
>> otherVector), you have to use long function calls like
>> obj.getPosition().addVec(otherVector) or similar.
>
> You have a point. The inability to overload operators is unsatisfying.
>
>> Of course, the only true solution would be to write a programming
>> language and use that to implement a compiler framework which would
>> then be used to implement a compiler which would then be used to
>> implement a programming language which would then be used to implement
>> a 2D graphics engine which would then be used to implement a game
>> engine which would then be used to implement a game.
>
> Don't forget you have to write the operating system from scratch.
>
> Seriously, the idea is to cut down on TSC's dependencies and pick up
> some OpenGL experience on the way. Even more important, the entire thing
> should be fun to work on, ideally for all of us.
>

Ah wait, are we implementing an OpenGL rendering engine? I thought we
were going to use SFML or another drawing library again... ¯\_(ツ)_/¯

>> In all seriousness, though: if we're looking at other languages, I'd
>> highly recommend Nim: https://nim-lang.org/
>
> I will take a closer look in the next days, but a language that compiles
> down to another language before it is compiled to machine code
> introduces a layer of abstraction that I'd rather not want to deal
> with. One more layer of abstraction means there's one more possible
> source for problems. I have made bad experiences with CoffeeScript in
> this regard. Then, the same approach was used for Vala, which was boldly
> announced by the GNOME people some years ago and has now fallen out of
> use[1]. This is exactly the kind of short durability that I want to
> avoid. Look, TSC's current code base is more than 10 years old, and it
> would be nice if the new code base could make for another 10 years and
> then still finding developers for it.

True, but C is treated as less of a transpilation target (as with
CoffeeScript) and more of a high-level assembler. It also makes the
code really easy to cross-compile (I've built Windows binaries before
using only just the C cross-compiler, and everything else kind of
"just worked"). I do understand your concerns, though.

That being said, for the sake of my CPU, please don't make TSC an
Electron app...

Side note, there's also Haxe: http://haxe.org/

I've never used it personally, but I've heard pretty good things about it.

>
> I find C++'s complexity disturbing, but the one thing it can hardly be
> beaten on is durability. I have no worries that the language and people
> actively using it are still around in 10 yers. The same with C. With Go,
> I have the hope that this will be the case. With languages that I have
> never heard of until they are either suggested here or have made it as
> hip to HackerNews only recently, I have problems to imagine.
>
> Marvin
>
> [1]: https://www.bassi.io/articles/2017/02/13/on-vala/ (who is a GNOME dev)
>
> --
> Blog: https://www.guelkerdev.de
> PGP/GPG ID: F1D8799FBCC8BC4F
>



-- 
Ryan (ライアン)
Yoko Shimomura, ryo (supercell/EGOIST), Hiroyuki Sawano >> everyone else
http://refi64.com/

By Thread
2017-09-24 06:57:49Marvin Gülker[tsc-devel] Rewrite: Programming language
2017-09-24 12:09:04Lauri OjansivuRe: [tsc-devel] Rewrite: Programming language
2017-09-25 11:57:30Marvin GülkerRe: [tsc-devel] Rewrite: Programming language
2017-09-25 14:09:38rymg19@gmail.comRe: Re: [tsc-devel] Rewrite: Programming language
2017-09-25 14:47:52Taran LynnRe: [tsc-devel] Rewrite: Programming language
2017-09-25 17:25:08Marvin GülkerRe: [tsc-devel] Rewrite: Programming language
2017-09-25 18:43:45Taran LynnRe: [tsc-devel] Rewrite: Programming language
2017-09-25 19:33:22Marvin GülkerRe: [tsc-devel] Rewrite: Programming language
2017-09-25 16:46:10Marvin GülkerRe: Re: [tsc-devel] Rewrite: Programming language
2017-09-25 20:15:23Ryan GonzalezRe: Re: [tsc-devel] Rewrite: Programming language
2017-09-25 21:10:15Lauri OjansivuRe: Re: [tsc-devel] Rewrite: Programming language
2017-10-06 18:47:09Marvin GülkerRe: Re: [tsc-devel] Rewrite: Programming language
2017-10-06 20:34:08Ryan GonzalezRe: Re: [tsc-devel] Rewrite: Programming language
2017-10-07 09:11:11Marvin GülkerRe: Re: [tsc-devel] Rewrite: Programming language
2017-10-14 18:48:42Marvin GülkerRe: Re: [tsc-devel] Rewrite: Programming language
2017-10-15 20:35:07Chris JacobsenRe: [tsc-devel] Rewrite: Programming language
2017-10-15 22:49:12Ryan GonzalezRe: [tsc-devel] Rewrite: Programming language
By Date
[tsc-devel] Rewrite: Programming languageMarvin Gülker2017-09-24 06:57:49
Re: [tsc-devel] Rewrite: Programming languageLauri Ojansivu2017-09-24 12:09:04
Re: [tsc-devel] Rewrite: Programming languageMarvin Gülker2017-09-25 11:57:30
Re: Re: [tsc-devel] Rewrite: Programming languagerymg19@gmail.com2017-09-25 14:09:38
Re: [tsc-devel] Rewrite: Programming languageTaran Lynn2017-09-25 14:47:52
Re: Re: [tsc-devel] Rewrite: Programming languageMarvin Gülker2017-09-25 16:46:10
Re: [tsc-devel] Rewrite: Programming languageMarvin Gülker2017-09-25 17:25:08
Re: [tsc-devel] Rewrite: Programming languageTaran Lynn2017-09-25 18:43:45
Re: [tsc-devel] Rewrite: Programming languageMarvin Gülker2017-09-25 19:33:22
Re: Re: [tsc-devel] Rewrite: Programming languageRyan Gonzalez2017-09-25 20:15:23
Re: Re: [tsc-devel] Rewrite: Programming languageLauri Ojansivu2017-09-25 21:10:15
Re: Re: [tsc-devel] Rewrite: Programming languageMarvin Gülker2017-10-06 18:47:09
Re: Re: [tsc-devel] Rewrite: Programming languageRyan Gonzalez2017-10-06 20:34:08
Re: Re: [tsc-devel] Rewrite: Programming languageMarvin Gülker2017-10-07 09:11:11
Re: Re: [tsc-devel] Rewrite: Programming languageMarvin Gülker2017-10-14 18:48:42
Re: [tsc-devel] Rewrite: Programming languageChris Jacobsen2017-10-15 20:35:07
Re: [tsc-devel] Rewrite: Programming languageRyan Gonzalez2017-10-15 22:49:12