6 ms·
Author of the language here, I think it is a major advantage for several reasons: - the documentation is in one place instead of several places - the dependen
by gdotdesign 7y ago
Author of the language here, I think it is a major advantage for several reasons:
- the documentation is in one place instead of several places
- the dependencies of a Mint project is usually a few megabytes since everything is included instead of hundreds of megabytes (I have a production app that does not have any dependencies at all)
- only need to learn one (compact) thing, instead of many complex things (complex since there is no compiler to make it simple)
- only need to update the code once there is a new version of the language not every time there is a new version of a dependency
On top of the libraries mentioned the language also includes a formatter, package manager, builder/dev server and testing environment, also for which you would need to add dependencies.
All of these add up to less cognitive load so I can focus on building the product instead of managing the development environment.
(edit: formatting)
- sdegutis 7y ago(Not GP.) You've clearly put a lot of work into this, a lot more than a lot of people could. I think a lot of people will gloss this over, but I thought about what I would want if I put the same amount of time and effort into something, and I would want honest feedback. > - the documentation is in one place instead of several places For developers with a few years experience, they don't generally have trouble finding documentation for disparate frameworks and languages. The bigger trouble is usually finding out the latest best practices. > - the dependencies of a Mint project is usually a few megabytes since everything is included instead of hundreds of megabytes (I have a production app that does not have any dependencies at all) There are a lot of use-cases where the bloat of the web app isn't really an issue. But for those who do (and I'm not sure who they are), it's still a somewhat unsolved problem. > - only need to learn one (compact) thing, instead of many complex things (complex since there is no compiler to make it simple) I don't think that's necessarily true. They would have to learn all the same concepts which exist within Mint. (And if not all the same concepts exist within Mint, then it's not up to par.) What's different is the syntax, and the semantics of how these concepts glue together within Mint. This generally means it's actually harder to learn a new all-on-one language than it is to learn React + TypeScript + styled-components for someone who already knows JS. > - only need to update the code once there is a new version of the language not every time there is a new version of a dependency Then how are the dependencies getting updated when there's a new version? If I use a currency library in my Mint app, how can I update it, and test it locally to make sure the updated library still works with my app? At some point we have to deal with dependencies and updating them...?
- gdotdesign 7y agoThanks for the feedback! I really appreciate this ;) All of your counter points have merit, I think it boils down to preference at this point, but what I can tell you that after doing Elm for a while getting back to the JavaScript ecosystem is a nightmare and Mint is my way out of that (for SPAs). > I don't think that's necessarily true. They would have to learn all the same concepts which exist within Mint. (And if not all the same concepts exist within Mint, then it's not up to par.) What's different is the syntax, and the semantics of how these concepts glue together within Mint. This generally means it's actually harder to learn a new all-on-one language than it is to learn React + TypeScript + styled-components for someone who already knows JS. I'm not entirely convinced that that is the case, TypeScript can be it's own language in itself. Not really a problem now but a few years back people struggled to even learn new versions of JavaScript in itself, let alone a the libraries with their different paradigms. Also to get where Mint is you would probably need to learn: TypeScript, React, styled-components, Jest, prettier, Webpack, Redux (or one of the alternatives), Babel and that's just from the top of my head. > Then how are the dependencies getting updated when there's a new version? If I use a currency library in my Mint app, how can I update it, and test it locally to make sure the updated library still works with my app? At some point we have to deal with dependencies and updating them...? There will be dependencies sure and you will take care of them as usual, what I am saying is that with Mint you will only need a few. The application I've been developing (https://www.base-api.io/ https://www.base-api.io/) and the front-end is in Mint and it has 0 dependencies (other than the standard library which is built in).
- elbear 7y agoAs I was reading the page, I kept thinking this feels very similar to Elm, but without the functional programming part. I assume that was on purpose to not scare people away. Anyway, nice job! The language looks really clean.
- sdegutis 7y ago> I'm not entirely convinced that that is the case, TypeScript can be it's own language in itself. Not really a problem now but a few years back people struggled to even learn new versions of JavaScript in itself, let alone a the libraries with their different paradigms. I think that's just a coincidence. We happen to know people who are starting to learn JavaScript (and learning new languages is always a struggle), and so naturally they also struggle to learn TypeScript when faced with those concepts for the first time. But this is more The Evolution of a Programmer kind of thing. > Also to get where Mint is you would probably need to learn: TypeScript, React, styled-components, Jest, prettier, Webpack, Redux (or one of the alternatives), Babel and that's just from the top of my head. A lot of these (Babel, prettier, Webpack) just need a good starter configuration and can be mostly ignored afterwards. The rest mostly boil down to concepts: Jest stands in for any testing framework, there's nothing special about it; TypeScript for a mostly-basic type system; React for a basic declarative UI framework; styled-components for mostly-just CSS encapsulation. > There will be dependencies sure and you will take care of them as usual, what I am saying is that with Mint you will only need a few. Ah I understand better now what you meant: the concepts that come built into Mint are ones you don't have to worry about getting an external dependency for.
- mark_l_watson 7y agoI like programming languages, no justification needed for writing a new one! I will try Mint our later today.
- undefuser 7y agoIs there any plans for supporting Windows developers?
- gdotdesign 7y agoMint is written in Crystal when they finish their implementation it will be possible to compile to Windows.
- marstall 7y agoagreed - learning the full react/redux stack is something that's viewed as "hard" for sure by many. with justification. this looks cognitively much simpler. thank you.
- smehtaca 7y agoThanks for replying. I hope I didn't come off as too arrogant or bashful. I do see your point with having tiny dependencies and reducing cognitive load. I have projects balloon up in size. I think the small dependency is a point you should highlight on your website. With regards to the JS interoperability, does Mint play well with libraries from the JS ecosystem?
- 6nf 7y agoBashful means shy btw
- epicureanideal 7y agoYes, I think he meant "brash".
- smehtaca 7y agoYes haha, autocorrect got me :)