erlang   33060

« earlier    

GitHub is where people build software. More than 28 million people use GitHub to discover, fork, and contribute to over 85 million projects.
erlang  rust 
4 days ago by lenciel
Is Perl6 faster than Perl 5 on average? : perl6 The only VM besides parrot with concurrency safety and not using copy-all. Erlang has a slow VM and passes everything as copy and is still fast (a IO bottleneck cost you min. 50x), but sharing makes the difference. And it's the fastest language around, faster than C++ with OpenMP. And proper syntax and types. Go is nice but limited, Rust is lying all over to its users such as perl5+6. Hype-driven development, such as perl6.


[–]reini_urban 2 points 2 days ago
Rust allows memory unsafety: which normal languages only need for their FFI. Here it's a keyword and used all over their stdlib.

Rust is concurrency unsafe. It does not protect from deadlocks and race conditions, but calls it "Fearless Concurrency" Instead you need to fear it, and work around with manual mutex and semaphores. Concurrency safety means the compilers does this for you, or the compiler avoids locks at all. Like parrot or pony do. Or fall back to copy-only, no shared data. Which is the desperate slow path Erlang and Go went. There refs are either read-only or copied.

permalinkembedsaveparentreportgive goldreply


[–]reini_urban 0 points 9 hours ago
Or perhaps you accept the answer -- and accept that MoarVM could one day approach the JVM's abilities for some workloads -- but think C++ is not remotely the same deal as C.

Nobody in his sane mind will accept that.

This has nothing to do with cperl or perl5. These are dinosaurs and the slowest of all big dynamic languages. Only moar is slower, but that is not considered big.

It has to with analyzing the three fastest dynamic languages around: v8/javascript, and the two lua's with a jit: luajit (= tvmjit) and potion (= p2), which was based on a pre-luajit lua with classes and mop (for ruby). you can also look at guile btw. which would be an excellent backend, much better than moar. tvmjit is based on the very fastest dynamic language design, and got a very good nqp level compared to moar. 50x better and faster. 10x smaller. You could also at pypy/rpython or graal to the mix, but these are already the monsters like v8 or perl6. These can only be improved by a huge compiler expert group, and will never reach the luajit, potion or JVM levels, just by trashing the caches with their dynamic bloat.

If you look at these you'll see that moar will never ever reach any of these capabilities. And with the latest jit plans it became even worse. Startup time is at the JVM level, even worse. Remember perl6 is to be used mostly for smallish scripts, not huge programs and servers. Run-time is at the 100x slower level, not even the 10x slower level, where php,ruby,python,perl5 are. That's trivial to observe by looking at all the bloat carried around at runtime, and what it is compiled to. And the architectural design, as I said before. You can demand a native stdlib, as pypy or common lisp does, when you got a fast VM and compiler, but not with something like perl6/nqp/moar.

There are certain level's you can agree to reach and certain levels which are just out of reach. JVM or luajit/potion are totally out. Even perl5 seems to be out of reach. The typical Moose benchmark comparison is totally bogus, there's nothing worse designed than Moose. (Well, Distzilla would have to carry that bag, but we are talking about OO). You can compare it to the realistic and recommended OO systems in perl5, which are cperl and Mouse, and there perl6 looses badly. Given that perl5 has a horrible VM design, with its broken ABI and stack design, that's quite a feature.
choice_of  Programming_Language  Pony  Erlang  Perl  Perl6  Rust  CONs  Lus  LusJIT  Potion  VM  Parrot  Moar  Insightful  higher_quality  Urban_Reini  cperl 
6 days ago by snearch

« earlier    

related tags

5*  algorithms  amd  angularjs  architecture  asciidoc  asymptoticnotation  awk  bash  beam  beamer  bf  bittorrent  blogs  book  broker  build  c#  c++  c  cep  chapel  chicken  choice_of  cisco  cli  clojure  cmake  coding  coffeescript  coldfusion  commonlisp  comparison  compojure  composer  configuration  cons  cperl  crystal  css  cypher  d  dart  datastructures  debugging  deployment  ders  design-patterns  development  devops  discount_code  distributed_systems  dynamicprogramming  ebook  edn  elisp  elixir  elm  emacs  ets  external  f#  factor  fail  flow  flowbasedprogramming  forth  fortran  functional-programming  git  github  go  golang  groovy  hack  hackernews  hacking  haml  hardware  haskell  haxe  higher_quality  history  howto  hq9+  html  hy  inform7  insightful  internet  java  javascript  joearmstrong  jquery  json  julia  kdb+  kotlin  kubernetes  lambdacalculus  language  languages  latex  less  library  linux  lispflavourederlang(lfe)  livescript  llvm  logtalk  lolcode  lua  lus  lusjit  make  markdown  matlab  messagepack  messages  messaging  mnesia  moar  model  monad  mongoose  mqtt  ndcoslo  neat  networking  nif  nim  nix  objective-c  objectorientedprogramming  ocaml  oop  opengl  opensource  otp  paren  parrot  pascal  pcre  pdf  performance  perl  perl6  phoenix  php  pogoscript  pony  potion  powershell  process  programmierung  programming  programming_language  programming_languages  prolog  purescript  pyqt  python  python3  qtframework  r  racket  red  reference  resources  restructured(rst)  ruby  rust  sass  scala  scheduling  security  self  send  shutit  signal  smallbasic  smalltalk  software-architecture  software-design  solidity  ssh  standardml  statisticalcomputingpython  strings  swift  syntax  tcl  tcsh  technology  templates  tmux  to-read  to-watch  toml  tools  translations  tunnel  tutorial  typescript  unicode  unix  urban_reini  useful  vala  verteiltesysteme  video  vim  visualbasic  vm  vpn  whip  wikipedia  wireshark  wolfram  xml  yaml  youtube  zfs 

Copy this bookmark: