tliron / ronin

A straightforward but powerful build system based on Ninja and Python
Apache License 2.0
60 stars 8 forks source link

Typescript instead of Python? #1

Closed winksaville closed 7 years ago

winksaville commented 7 years ago

Tal,

I saw your comment on Craftr about ronin, I was wondering if you'd considered using Typescript instead of Python? I ask because Python is a decent language it doesn't support strong typing and on "large" projects I see that as a significant issue to maintenance.

tliron commented 7 years ago

Thanks!

I agree entirely about Python's limitations, but there are ways around it. If you see in the collections and types modules, I've already started introducing some type-checking, which I agree is not the same, but does go a long way towards reducing hard-to-find bugs. Since build systems tend to run very quickly, you will get an error thrown practically instantly if you did something wrong. I've used this technique in other Python projects to some success. And I've worked on some very large Python projects.

If you ask me, the best language to use in a perfect world would be Haskell. :) But ... there's a lot to be said for culture and familiarity. Python is a lingua franca in devops and in other communities, and has a huge ecosystem of easy-to-install libraries to handle practically anything you need. All in all it seems like the best choice for this kind of project.

winksaville commented 7 years ago

Being from the C/C++/Java world I just find it hard when I design and API that I users of the API can invoke the API in away they like, but I understand why Python suits your needs.

I'm just learning Typescript and I'm surprised how, with node.js, you can use the web tools for command line stuff. So I think I'm going to start trying to use Typescript instead of Python or Bash as much as possible, hence why I asked the question. Oh and in the future with WebAssembly you'll get good performance and be able to "easily" mix C/C++/Ninja ... libraries and get performance as fast as "native".

So we'll see how things go, it will continue to be fun times :)

I'll be watching Ronin and I think you're going in an interesting direction.

tliron commented 7 years ago

I'm also from the C/C++/Java world. Hence the need for a build system. :)

We both know good coders, with good discipline, and good experience, can write good things in any language. I've learned to stop looking at fads a long time ago, and focus on tools that work, are mature, and have a good community around them. Python has looooots of problems as a language and as a platform, but I find that Python programmers are Good Folk Who Get It.

It's hard for me to imagine rewriting Rōnin in TypeScript at such an early stage (just starting working on it 5 days ago), so I will close this issue for now. However, I can't promise no rewrites in the distant future. ;)

winksaville commented 7 years ago

Agreed!

On Tue, Dec 27, 2016, 10:35 PM Tal Liron notifications@github.com wrote:

Closed #1 https://github.com/tliron/ronin/issues/1.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/tliron/ronin/issues/1#event-906263482, or mute the thread https://github.com/notifications/unsubscribe-auth/AA-hHBL9TRy2LCWDwCs9y08YUr1gkHWzks5rMgM-gaJpZM4LWqzX .