kkirby / gorillascript

GorillaScript is a compile-to-JavaScript language designed to empower the user while attempting to prevent some common errors.
MIT License
5 stars 2 forks source link

What is the current status? where is it going? how can I help out? #5

Closed kristianmandrup closed 7 years ago

kristianmandrup commented 7 years ago

Wow! I sure love the idea behind Gorillascript! So much more powerful :) Are ES6 modules supported? What about other module formats?

How about classes? Not that I would like to use them but sometime I guess you have to for modern interop?

What about editor support? The old one has very limited support. Would be nice with VSC, Sublime and/or Atom. Would love to help out!

Cheers!

vendethiel commented 7 years ago

I know @kkirby poured a lot of work into this, and I know he used LiveScript at some point. No idea if he still does.

kristianmandrup commented 7 years ago

No matter, I just found futurescript

Would still be very neat if GorillaScript had a .tmbundle (Text Mate bundle) file for editor support in most modern editors. I used to play around with that back in the day of TM

vendethiel commented 7 years ago

Doesn't have macros, doesn't have actual pattern matching (even though it says it does), has hacks like <>. It also has insane stuff like an 'ok keyword...??

Doesn't look like it has much more than even LiveScript :).

kkirby commented 7 years ago

@kristianmandrup:

What is the current status?

Dormant. I'm personally moving away from Gorillascript. It's a fantastic language but with the advancements in JavaScript it makes more sense for me to use ES2015. I currently have a few large projects using Gorillascript so I will continue to maintain its stability for the next few years.

where is it going?

Wherever you want.

how can I help out?

Think of something you want done? Do it and submit a PR.

Are ES6 modules supported? What about other module formats?

No. But you could easily create a macro to convert an ES2015 syntax to CommonJS.

How about classes?

Yes.

What about editor support?

I've attached the tmLanguage that I use.

GorillaScript.tmLanguage.zip

kristianmandrup commented 7 years ago

Thanks @kkirby :)

I'm betting on FutureScript for now. JavaScript still feels way too verbose and clunky for my taste!

I believe GorillaScript is dated by now but has some really cool ideas that hopefully gets ported to other efforts such as FutureScript (you interested?)

Thanks for the hard work!

Cheers!

kkirby commented 7 years ago

@kristianmandrup I have to disagree. JavaScript isn't clunky at all anymore. Most of the stuff that ckknight put into GorillaScript was stuff that ECMAScript 6+ would bring to the table:

That's just a bit of the new features in ECMAScript. I highly recommend against compile-to-js languages for anything real-world. They add overhead and unnecessary time when on-boarding a new developer to work on the project. It's also difficult to get others to peer-review your code. My new workflow consists of using Babel to transpile these newer features to be compatible with older browsers. Also, for added Sugar, just apply sweet.js (a macro language for javascript).

kristianmandrup commented 7 years ago

I guess you are right. I just still feel there is a lot of cruft and "Bad parts" left in Javascript that we could ideally get rid of. Another option would be TypeScript. Cheers!

vendethiel commented 7 years ago

@kkirby ES still doesn't have macros, types (w/ generics), user-defined operators, everything-as-an-expression, dashed identifiers, herestrings, and some more minor stuff like cascades/existential operators.

kkirby commented 7 years ago

@vendethiel You're right, JavaScript isn't as awesome as GorillaScript, but I feel having someone be able to pick up my project when I'm on vacation and understand it is more important. But some of the items on your list are feasible:

• Macros can be implemented with sweetjs, which you are familiar with. (I was looking up to see if operators were supported and saw your comment in issue 517) • Types can be handled by Flow • Everything-as-an-expression can kind-of be supported using the do {} syntax, and in-line array building can be done using the built-in array methods • I'm personally not a huge fan of dashed identifiers • I got nothing for cascades • An existential operator would be amazing

vendethiel commented 7 years ago

• Macros can be implemented with sweetjs, which you are familiar with. (I was looking up to see if operators were supported and saw your comment in issue 517)

I don't feel sweetjs is any easier to pick up than GS (at least if you somewhat know coffee, python, ruby or something along those lines).

• Types can be handled by Flow

that mixes very poorly with sweetjs. However, they're static, which is a big plus vs. what GS does.

• Everything-as-an-expression can kind-of be supported using the do {} syntax, and in-line array building can be done using the built-in array methods

I'm not sure it's implemented in Babel yet? Has it even been approved?

kkirby commented 7 years ago

• It's not :P • I agree • It's in Babel, it's strawman: Do Expressions

vendethiel commented 7 years ago

• It's in Babel, it's strawman: Do Expressions

I wonder how this fares with a for loop. Or object comprehension. Very nice to see still.


TBF, I believe that by now, altjs should compile to the newest version available. GS, LS etc could become much simpler by simply compiling to ES7+.