Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

proposed tech stack for this generator #1

Closed
honkskillet opened this issue Mar 15, 2015 · 16 comments
Closed

proposed tech stack for this generator #1

honkskillet opened this issue Mar 15, 2015 · 16 comments

Comments

@honkskillet
Copy link

Hey,
While this repo is in an embryonic state, I thought I'm make an issue for discussing what new tech to include. Give the impending dawn of es6, I think it would make sense to do things in an es6 type of when possible. With that in mind, I propose using

jspm - http://jspm.io (Check out this video https://www.youtube.com/watch?v=iukBMY4apvI , I cannot recommend it enough.)
traceur
es6 promises ( http://www.html5rocks.com/en/tutorials/es6/promises/ )
es6 modules ( http://www.2ality.com/2014/09/es6-modules-final.html )

@ericmdantas
Copy link
Owner

Hey there!

jspm - http://jspm.io

Just checked the video and it seems really nice, man. I'll definetely give it a try! By the way, have you tried it with angular.js? If so, how do you deal with the unit tests?

I was just checking this post. Seems pretty cool indeed.

traceur

Depending on what we'll be using, io.js should do just fine. But I'll take a look at what traceur has got that io.js doesn't.

es6 promises

For now, since there are implementations faster than native promises, I think we could keep a lib to simulate es6 promises - like bluebird, for example. Not to mention that ES6 Promises' API is not as vast as some of these libs' out there.

es6 modules

I really liked it. We could use traceur for the backend and jspm for the frontend 👍 .

Thanks for the links, by the way.

@honkskillet
Copy link
Author

Nice.

I haven't tried jspm with angular yet so I can't speak towards unit testing.

What are you thinking about for Authentication?

@honkskillet
Copy link
Author

And the scaffolder? (Yeoman vs Slush).

@ericmdantas
Copy link
Owner

Authentication

Backend I'd probably go with Passport. And frontend I just learned about Satellizer. But I have only used the first one, so I'd have to take a look if they're meant to work together or separeted.

Scaffolding

Probably with Yeoman, mostly because of the community around it. But I'll keep an eye on Slush, seems interesting.

jspm and unit tests

I'll see what I can find about it. If you learn something about the subject, please let me know.. because that's the only thing that's holding me back from using it.

@honkskillet
Copy link
Author

I’ll look around for unit test info.

Re Satellizer, much like angular-fullstack, it is pretty much married to Angular 1.x at this point.
Check out the github issue sahat/satellizer#320 sahat/satellizer#320

I don’t really have a strong opinion about which scaffolder to use. As I see it, the major pro of Yeoman is size of the community. The con being it is easy to get lost amongst all the other Yeoman generators out there. The pro for slush is that it is basically just gulp and if this project is using gulp already then it might be the easier of the two to implement.

On Mar 16, 2015, at 12:03 PM, Eric Mendes Dantas notifications@github.com wrote:

Authentication

Backend I'd probably go with Passport https://github.com/jaredhanson/passport. And frontend I just learned about Satellizer https://github.com/sahat/satellizer. But I have only used the first one, so I'd have to take a look if they're meant to work together or separeted.

Scaffolding

Probably with Yeoman, mostly because of the community around it. But I'll keep an eye on Slush, seems interesting.

jspm and unit tests

I'll see what I can find about it. If you learn something about the subject, please let me know.. because that's the only thing that's holding me back from using it.


Reply to this email directly or view it on GitHub #1 (comment).

@ericmdantas
Copy link
Owner

I see.. That's a problem. But I believe if the community really adopts Angular 2.0, they'll follow - or someone else will.

About the scaffolder, I haven't created a 'generator' with slush yet, but I'll give it a try before saying it's good or bad. But the community is definetely something to care about when choosing one way or the other.

@ericmdantas
Copy link
Owner

By the way, I'm really leaning towards babel instead of traceur.

It just seem cleaner and without those global objects/configurations from traceur.

Here's an example of vanilla javascript.

Later today I'll create an example with angular to understand the gotchas.

@honkskillet
Copy link
Author

Sounds reasonable. Having to include a separate traceur script in the build is ugly and babel is ahead in it’s implementation of es6 anyways.
https://kangax.github.io/compat-table/es6/ https://kangax.github.io/compat-table/es6/

On Mar 17, 2015, at 1:12 AM, Eric Mendes Dantas notifications@github.com wrote:

By the way, I'm really leaning towards babel instead of traceur.

It just seem cleaner and without those global objects/configurations from traceur.

Here's an example of vanilla javascript <https://babeljs.io/repl/#?experimental=true&playground=true&evaluate=true&loose=true&spec=false&code=var%20_%20%3D%20()%20%3D%3E%20undefined%3B%0A_.isString%20%3D%20str%20%3D%3E%20!!str%3B%0A%0Aclass%20Person%0A%7B%0A%20%20constructor(obj%20%3D%20%7Bname%3A%20'Somebody'%7D)%0A%20%20%7B%0A%20%20%20%20%20%20this.name%20%3D%20_.isString(obj.name)%20%3F%20obj.name%20%3A%20'Not%20a%20string!'%3B%0A%20%20%7D%3B%0A%20%20%0A%20%20one%20%3D%20true%3B%0A%20%20%0A%20%20static%20count(count%20%3D%2099)%0A%20%20%7B%0A%20%20%20%20console.log(count)%3B%0A%20%20%7D%3B%0A%20%20%0A%20%20sayHello()%0A%20%20%7B%0A%20%20%20%20console.log(%60Hello%2C%20I'm%20%24%7Bthis.name%7D%60)%0A%20%20%7D%3B%0A%7D%0A%0Avar%20_p%20%3D%20new%20Person()%3B%0A_p.sayHello()%3B%0APerson.count()%3B%0A%0Alet%20%5Ba%2C%20b%2C%20c%5D%20%3D%20%5B1%2C%202%2C%20%7Ba%3A%201%7D%5D%0Alet%20%7Bz%2C%20y%7D%20%3D%20%7Ba%3A%201%2C%20b%3A%202%7D%3B%0A%0Aconsole.log(%5B1%2C%202%2C%203%5D.map(a%20%3D%3E%20a%2 0*%203))>.

Later today I'll create an example with angular to understand the gotchas.


Reply to this email directly or view it on GitHub #1 (comment).

@ericmdantas
Copy link
Owner

Yeah.

Angular's core team has been using TypeScript for development, because of all the things that'll help you while on development, but check their ES6 coverage.. not even 10%.

I don't think I'll add an option for it anytime soon. We'll have to wait and see if they pick up the rhythm.

@ericmdantas
Copy link
Owner

About the comment above, looks like they'll release version 1.5~, which should close the gap between them and other transpilers - I'll keep an eye on it, for now, I'll keep using babel.

@ericmdantas
Copy link
Owner

Typescript 1.5-alpha is out.

I'm taking a look, if it's good enough, I'll switch from babel to Typescript.

@jgodi
Copy link

jgodi commented Apr 13, 2015

As for the client side code, any thoughts using material over bootstrap?

https://material.angularjs.org/#/

and for coding style (already does a lot of these, but just a few more tweeks)

https://github.com/johnpapa/angular-styleguide/blob/master/README.md

If you are interested in these, I will make a PR for them in the next few days.

@ericmdantas
Copy link
Owner

Hello, @jgodi!

I have taken a look at material.angularjs, but have never used it. Is that stable enough to be used?

As for the PR, go for it! Just don't forget to check the tests in your machine - to make sure nothing is broken. Thanks!

@jgodi
Copy link

jgodi commented Apr 13, 2015

Ya, they are about to release perform a v0.9 release and I have been using it in our company applications so far. It doesn't have all the components that Bootstrap has, so maybe just wait off until the v1.0 when it will have more components.

Sounds good!

@ericmdantas
Copy link
Owner

Reminder:

Keep an eye on io.js with the update of v8 (4.2).

That'll change a few things, like, not needing babel to transpile classes in io.js (server).

Here's the issue.

@ericmdantas
Copy link
Owner

Closing.

ericmdantas pushed a commit that referenced this issue Apr 9, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants