Jump to content
  • Kemerdekaan indonesia 74
  • Kemerdekaan indonesia 74
  • Kemerdekaan indonesia 74
dev_guild

What are general thoughts on Elixir, Crystal, Nim, Kotlin, Rust, Swift, Haskell, and Go?

Recommended Posts

Kotlin

Kotlin is a statically typed language that targets the JVM and JavaScript. Kotlin was born out of need at JetBrains, which was looking for a new language in which to write its tooling, which was mostly written in Java. Something that would allow it to leverage its existing codebase and at the same time resolve some of the issues it had with Java. And it was precisely common pitfalls that one encounters when writing software that shaped much of Kotlin’s characteristics.

Conciseness: Reduce the amount of boilerplate code necessary to express certain constructs.

Versatile: Create a language that is suitable for any type of industrial application development, be it web, mobile, desktop, or server-side.

Safe: Let the language handle some of the common pitfalls made with issues such as null reference exceptions.

Interoperable: Permit the language to interoperate with existing Java codebases, libraries, and frameworks, allowing for gradual adoption and leveraging existing investments

Tool-enabled: JetBrains makes tools and it does so out of the belief that many mundane tasks can be automated and lead to more efficient and productive development. As such, the language has to easily allow for tooling.

Kotlin has and will always be about pragmatism—seeing common issues we encounter frequently when writing code and trying to help address these. This surfaces through various language features such as:

Null-safe by default: Kotlin types by default are not nullable, avoiding pesky null reference or pointer exceptions.

First-class delegation: The ability to delegate functionality of a class member to an external function, thus allowing for reuse and better composition.

Conventions: A series of conventions that allow for writing expressive code, giving way to creating a strongly typed domain-specific language that provides better discoverability and easier refactoring.

Crystal

Crystal is a general-purpose programming language with the motto "Fast as C, slick as Ruby."

It's a high-level, statically typed, compiled, fully object-oriented programming language with advanced type inference and garbage collection.

The design goals of Crystal are:

Have a syntax similar to Ruby (but compatibility with it is not a goal).

Be statically type-checked but without having to specify the type of variables or method arguments.

Be able to call C code by writing bindings to it in Crystal.

Have compile-time evaluation and generation of code, to avoid boilerplate code.

Compile to efficient native code.

Crystal has unique features such as:

Channels: Crystal uses Channels inspired by CSP (just like Go) to achieve concurrency. It has cooperative and lightweight threads called Fibers to achieve this. One can easily create a Fiber with the spawn keyword and make the operation asynchronous/nonblocking.

Macros: Crystal uses macros to avoid boilerplate code and gain metaprogramming abilities. Macros are really powerful and evaluated at compile time, meaning they have no performance penalty.

crystal command: The crystal command itself is really powerful and comes with great built-in tools. It is used for creating a new project, compiling, running the test suite, and much more. There's also a built-in code formatter that you can use with crystal tool format. There's also crystal play, which is an interactive playground for some quick prototyping, just like irb.

Elixir

First introduced in 2012, Elixir is a general-purpose functional language designed for productivity, scalability, and maintainability. While the language is relatively new, it compiles to bytecode that runs on the Erlang Virtual Machine (BEAM). The Erlang VM was born out of the telecom industry, has been evolving for almost 25 years, and powers many massive, high-availability, and low-latency systems.

Currently, Elixir is primarily used to build web applications using either Cowboy, which is a bare-bones HTTP server, or Phoenix, a full-featured web application framework. It is also building steam in the embedded hardware space with the Nerves framework.

The Elixir syntax and toolchain both draw some inspiration from Ruby. While the syntax similarities are only skin-deep, the toolchain will feel familiar to anyone who knows Ruby. The commands are well thought out, are easy to use, and facilitate great developer productivity.

Language goals

“Friendly” functional programming: The power and benefits of a functional language, with a clear and approachable syntax.

Highly concurrent and scalable: The language shouldn’t get in the way of tackling big problems for many users.

Excellent development tools: For building, managing dependencies, testing, and deployment.

Share this post


Link to post
Share on other sites
54 menit yang lalu, dev_guild berkata:

Kotlin

Kotlin is a statically typed language that targets the JVM and JavaScript. Kotlin was born out of need at JetBrains, which was looking for a new language in which to write its tooling, which was mostly written in Java. Something that would allow it to leverage its existing codebase and at the same time resolve some of the issues it had with Java. And it was precisely common pitfalls that one encounters when writing software that shaped much of Kotlin’s characteristics.

Conciseness: Reduce the amount of boilerplate code necessary to express certain constructs.

Versatile: Create a language that is suitable for any type of industrial application development, be it web, mobile, desktop, or server-side.

Safe: Let the language handle some of the common pitfalls made with issues such as null reference exceptions.

Interoperable: Permit the language to interoperate with existing Java codebases, libraries, and frameworks, allowing for gradual adoption and leveraging existing investments

Tool-enabled: JetBrains makes tools and it does so out of the belief that many mundane tasks can be automated and lead to more efficient and productive development. As such, the language has to easily allow for tooling.

Kotlin has and will always be about pragmatism—seeing common issues we encounter frequently when writing code and trying to help address these. This surfaces through various language features such as:

Null-safe by default: Kotlin types by default are not nullable, avoiding pesky null reference or pointer exceptions.

First-class delegation: The ability to delegate functionality of a class member to an external function, thus allowing for reuse and better composition.

Conventions: A series of conventions that allow for writing expressive code, giving way to creating a strongly typed domain-specific language that provides better discoverability and easier refactoring.

This is same like JSP?

Share this post


Link to post
Share on other sites
On 3/12/2017 at 18.29, dev_guild berkata:

Elixir

First introduced in 2012, Elixir is a general-purpose functional language designed for productivity, scalability, and maintainability. While the language is relatively new, it compiles to bytecode that runs on the Erlang Virtual Machine (BEAM). The Erlang VM was born out of the telecom industry, has been evolving for almost 25 years, and powers many massive, high-availability, and low-latency systems.

can you give our example code about this language? I want to know :1f60c

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

We use cookies. They're not scary but some people think they are. Terms of Use & Privacy Policy