Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-

tooling for functional languages

Name: Anonymous 2019-01-16 8:13

one of the advantages of functional languages, especially typefaggy ones, is that it makes program analysis, proving shit and finding bugs at compile-time easier. this is all fine and good but why is there almost no tooling that takes advantage of it? IDEs and debuggers are years behind mainstream shit like Java, and that's even without getting into proprietary IDEs and code-reading tools for C or Lisp.

inb4 you don't need tools because the language itself, REPL and compiler are enough. not only is it bullshit because tracing the exectuion of even a mildly complex program is difficult regardless of the language (as it's the algorithm itself that is complex), it's also bullshit because compilers for dead dog and dead camel tend to spew out cryptic, overly-abstract messages that aren't trivial to connect with concrete bugs. IDE and debugger that understand your're are code are a big win for any practical programming task

Name: Anonymous 2019-01-16 8:45

type script

Name: Anonymous 2019-01-16 16:37

>>1
Did you search for yourself? Haskell, Agda, Coq, and OCaml all have an emacs mode of their own which works just fine. OCaml has things like utop, Coq has coqide, Haskell has a shit-ton of tools for profiling, etc.

compilers for dead dog and dead camel tend to spew out cryptic, overly-abstract messages
I do not know about OCaml but this is certainly not true for Haskell.

Name: Anonymous 2019-01-17 6:35

OCaml recently got very good IDE support (squiggly lines on errors and warnings, types and documentation on hover, rename symbol) with merlin.
I'm not very familiar with ocamldebug but it's being actively worked on, and there's tooling for AFL and memory profiling built into the standard installation, not as good as Java but it's still something. Utop (the repl) is also much better than most repls, it has syntax highlighting and very nice autocompletion.

Name: Anonymous 2019-01-17 7:37

>>3
emacs mode is a bare minimum when it comes to tooling, not comparable by itself with a good modern IDE, unless it's something like SLIME. but most emacs modes are not SLIME. a good example of an IDE for a functional langs would be Visual Studio for F#, and if we step outside of the typefaggy stuff: Dr. Racekt for Racket and LightTable for Clojure (if it wasn't abandoned).

Name: Anonymous 2019-01-17 7:41

>>3
I do not know about OCaml but this is certainly not true for Haskell.
dead camel has some of the worst compiler messages out there, aside from ada gnat. haskal is better unless you fuck something up with kinds

Name: Anonymous 2019-01-17 10:08

>>5
These emacs modes are not just syntax highlighting. They have a lot of features in them.

Name: Anonymous 2019-01-17 13:26

>>7
Yeah like ** random ** syntax colours.

Name: Anonymous 2019-01-18 2:57

the main reason people build static analysis tools is to test and debug their code. functional programming users don't need this because they don't write code, only forum posts.

Name: Anonymous 2019-01-18 7:16

>>9
but I want to debug my shitpoasts!

Name: Anonymous 2019-01-18 7:35

which language has best tooling to debug dubs

Name: Anonymous 2019-01-18 12:49

>>10
🚨🚨🚨CLOAN DETECTED🚨🚨🚨

Name: Anonymous 2019-01-18 12:52

>>12
cloan my anus

Name: Anonymous 2019-01-19 11:12

>>9
I have not written any codans since PASCAL in high school, i have no idea what's going on here.

Name: Anonymous 2019-01-19 17:18

tooling? moar like trolling

Name: Anonymous 2019-01-19 22:08

OCaml is one of the languages with better tooling, because there are companies like Jane Street actively use it.

There is no good ide, because everyone just uses emacs. but with tuareg and merlin mode you get:
- autocompletion
- on the fly compilation with highlighted errors
- interface for ocamldebug (although I admit it's not as nice as e.g. eclipse or visual studio)
- hints in the minibuffer that shows the type of the function you're currently using
Additionally you can use qcheck for property/unit testing.

Don't change these.
Name: Email:
Entire Thread Thread List