Here’s the Deal
Slant is powered by a community that helps you make informed decisions. Tell us what you’re passionate about to get your personalized feed and help others.
This is a .Net language natively supported by Visual Studio. Though it is not as tooled up as C# the support is still substantial. In particular, C# deployment scenarios can be enabled for it with small C# wrapper projects. Integration with Visual Studio provides: IntelliSense, debugging, projects an other features. See More
Like many other functional languages, F# takes a stance of immutability for everything (state, values etc...). There are several reasons why having immutable values is good. One of those is that the code you are writing becomes much more predictable and you don't have to worry about any side effects. See More
F# directs you into a workflow where the right way is the path of least resistance. Coming from a C# background, its restrictions might feel arbitrary at first (e.g., what do you mean my code has to be in dependency order!? Arbitrary alphabetical or bust!), but you'll soon realize that your code is cohesive, concise and consistent in a way that it never was before - and you can compile and run with confidence! See More
Compile direct to the Web Platform. Use HTML5 technologies, including canvas, WebGL, Websockets, WebAudio, and more. Works with external JS scripts and libraries. So, go ahead and use Elm with JS game engines and frameworks like Phaser, Pixi.js, and many, many others. Feel empowered to use Elm in your hybrid apps through mobile wrappers like Cordova/PhoneGap and CocoonJS, and with accelerated modern WebViews like Canvas+, WkWebView, Crosswalk, etc. See More
Elm implements an observer and emitter model for publishing and subscribing to events and other data streams, allowing Elm programs to interact with and respond to the external runtime environment. This extends to input and other browser events, external JS command execution, async network requests, RequestAnimationFrame(), timers, and more. See More
Like Mercury and Om, the Elm language uses virtual DOM to speed up manipulations, transformations, and property and attribute accesses, enabling extremely high levels of responsiveness. This feature, coupled with the Elm Architecture, is the inspiration for the popular Redux project of ReactJS fame. See More
The Elm community shares in actively developing and maintaining community packages that use the Elm Architecture to tackle specific problems and provide libraries of advanced functionality. On top of the individual developer contributions available in the Elm package repository, community packages provide a sort of standard library of extensions that compliment one another and build upon the core Elm packages. See More
The Elm language extension is par excellence, with syntax highlighting, auto-completion, code snippets, live function lookup and documentation (IntelliSense support), built-in Elm REPL (interactive command line), built-in elm-reactor (the time-travelling debugger) as the debug browser, and line-granular compile error highlighting, with more features like refactoring support and even more code snippets being developed. See More
Excellent language support in Visual Studio Code (cross-platform, free, open source rapid development editor with tooling)
Using Elm's immutable data + pure-function determinism and elm-reactor, a built-in live debugging web server, you can record your inputs live, reverse execution, make changes to your code, and play forward your inputs to see how your changes affect output. This is beyond amazingly useful for running up to a problem in your game, rewinding the execution to a known good state, fixing your code, then running it forward, and rapidly repeating until things work the way you want. Never again have to waste time stopping, re-compiling, and playing the game up to where your code executes every single time you patch or re-factor. Elm and the time-travelling debugger is your new best friend! See More
Since Rust 1.8 you can install additional versions of the standard library for different targets using rustup/multirust. For example: $ rustup target add x86_64-unknown-linux-musl Which then allows for: $ cargo build --target x86_64-unknown-linux-musl See More
Learning Haskell is not trivial. Haskell lends itself well to powerful abstractions - the result is that even basic, commonly used libraries, while easy to use, are implemened using a vocabularly that requires a lot of backround in abstract mathematics to understand. Even a concept as simple as "combine A and B" is often, both in code and in tutorials, described in terms of confusing and discouraging terms like "monad", "magma", "monoid", "groupoid", and "ring". This also occasionally bears its ugly head in the form of complicated error messages from type inference. See More
Haskell's white-space sensitive syntax, particularly together with the apply operator ($), saves your strained curly-brace, comma, and parentheses keys from overwork. Compared to languages like Scala or Lisp, Haskell code is much easier on the eyes, and saves you all that time you'd otherwise spend making sure your parentheses match up. See More
Haskell's language extensions, while making the language incredibly flexible for experienced users, makes a lot of code incredibly unfamiliar for beginners. Some pragmas, like NoMonomorphismRestriction, have effects that seem completely transparent in code, leading beginners to wonder why it's there. Others, like ViewPatterns, and particularly TemplateHaskell, create completely new syntax rules that render code incomprehensible to beginners expecting vanilla function application. See More
Plenty of games have been built in Haskell, such as Frag, a 3D First Person Shooter, and plenty of libraries and engines exist. Functional Reactive Programming is also gaining steam both inside and outside the Haskell community, and many Haskell FRP frameworks exist. See More
Haskell's type system lets programmers provide the compiler with the information it needs to make optimizations for performance comparable to C. GHC in particular has had plenty of work done to improve performance, and the LLVM backend means that generated code can also benefit from optimizations from the LLVM project. See More
In a real-time system it may not be possible to stop the system in order to implement code upgrades. For these cases Erlang gives you dynamic code upgrade support for free when using OTP. The mechanism is very easy to understand and works as follows: Start the app Edit the code Recompile That's all that is needed, the app updates with the new code while it's still running and tests are run automatically. See More
Erlang has been used in production for more than 20 years now. During that time it has proven itself over and over again that works great in both small startups and large-scale enterprise systems. Erlang has been used extensively by Ericsson themselves. For example, the AXD301 ATM, which is one of Ericsson's flagships is probably the largest Erlang project ever with more than 1.1 million lines of Erlang code. See More
Fault tolerance means that a system has the property to continue operating even though one or more components have failed. For Erlang systems, this means that the system is kept running even if for example a user has to drop a phone call rather than forcing everyone else to do so. In order to achieve this, Erlang's VM gives you: Knowledge of when a process died and why that happened The ability to force processes to die together if they depend on each other and if one of them has a fault. A logger that logs every uncaught exception Nodes that can be monitored so that you find out when they go down The ability to restart failed processes (or groups of them) See More
OPAM is a package manager for OCaml, which is really easy to use, just like npm. It creates a .opam folder in home directory. The documentation is great as well, and you can switch between multiple versions of OCaml for each project. You can also package your project and publish it on OPAM repositories, even if the dependencies do not exists on OPAM. See More
Help millions of people make better decisions.
Each month, over 1.7 million people use Slant to find the best products and share their knowledge. Pick the tags you’re passionate about to get a personalized feed and begin contributing your knowledge.