|
rjmccall posted:a good jit is a lot more involved than just asking llvm to compile some ir, because the point of a jit is to run code faster than an interpreter would, which means that if you're doing it right, you're putting a lot of work into deciding whether to jit and how much optimization you should do and how to take advantage of dynamic information and making the fallbacks work and ensuring that the different execution models interoperate, and it is all fun and really cool, but you probably do not actually want to do any of that on a raspberry pi, which means you probably ought to design a language that does not need a jit to achieve satisfactory performance, which seems to be exactly what common coder was doing anyway
|
# ¿ Jun 28, 2015 09:52 |
|
|
# ¿ May 3, 2024 22:06 |
|
If you write C/Java/whatever and aren't putting spaces between function arguments you are a bad person
|
# ¿ Jul 2, 2015 00:32 |
|
MononcQc posted:Erlang also just goes "failed to allocate, gently caress this I'm out" if you don't allow it to use Swap or anything. For server-software (taking back the dig at Go), it's often a reasonable way to do things because most people build their poo poo to handle going offline on specific instances from time to time. That's how most people deploy anyway. Also, you know, the whole "linux makes it futile anyway" thing.
|
# ¿ Aug 4, 2015 03:38 |
|
VikingofRock posted:I guess I can see that, but personally I don't really think it's that big a cognitive overhead and I'd rather have the compile time guarantee that the value is not null . But it's good to know that passing by pointer is idiomatic in case I ever write C++ on a team. On the other hand, using references provides enough information to other tools (for example, clang's undefined behavior sanitizer) to automatically insert runtime sanity checks everywhere appropriate to catch this kind of error and abort with an informative error message and backtrace.
|
# ¿ Aug 24, 2015 22:35 |
|
FamDav posted:is there a compiler setting in gcc or clang that will warn if you try to assign a subclass to a reference?
|
# ¿ Sep 6, 2015 20:19 |
|
FamDav posted:no, i mean assignment
|
# ¿ Sep 7, 2015 00:49 |
|
Sometimes in Haskell the type is clearer if you don't write it. This happens mainly when there's ridiculously generic things going on which have some fairly mundane cases. You see a lot of it in the lens library.
|
# ¿ Sep 7, 2015 08:45 |
|
It's amazing how much mainstream modern development has regressed in terms of debugging tools. Forth, Common Lisp, etc. all had all kinds of wonderful infrastructure like that and beyond.
|
# ¿ Sep 11, 2015 18:51 |
|
Blotto Skorzany posted:what sort of wonderful tooling did forth have
|
# ¿ Sep 12, 2015 08:31 |
|
Gazpacho posted:the industry didn't "fail" re: forth, it's just a terrible language for expressing computational ideas to other people
|
# ¿ Sep 12, 2015 18:12 |
|
Phobeste posted:sometimes i read these posts about row polymorphism and go "what the gently caress is this look at these smart fellers"
|
# ¿ Sep 29, 2015 05:25 |
|
Tiny Bug Child posted:who gives a poo poo what the url looks like. "restful urls" or whatever are stupid cause you can only put one meaningful bit of information in them and you gotta use a query string for everything else anyway
|
# ¿ Oct 1, 2015 01:10 |
|
If you aren't forced to work with legacy tools, you can use std::experimental::optional I think there's a standard variant type on the way too.
|
# ¿ Oct 2, 2015 21:25 |
|
Barnyard Protein posted:yeah Tcl is another language without a grammar, it has syntactic rules, but a bnf grammar doesn't exist
|
# ¿ Oct 7, 2015 06:24 |
|
So he took a version of Lisp from before most of the really cool features had been developed, removed the cool features that were left, then added back in screwy half-usable square wheel reinventions of everything?
|
# ¿ Oct 16, 2015 07:46 |
|
tef posted:lisp doesn't have any cool features but it comes with a cool features toolkit, where you can write your own ad-hoc, underspecified, never documented, control flow structures
|
# ¿ Oct 16, 2015 08:04 |
|
Cybernetic Vermin posted:the main nicety of cl is that the library is both sane and comprehensive Racket's pretty neat and about as batteries-included as it gets. There's even Typed Racket, which is surprisingly successful at letting you statically type-check idiomatic Lisp code.
|
# ¿ Oct 16, 2015 18:45 |
|
VikingofRock posted:Is idris cool? I've been having the itch to learn a semi-useless language recently, and right now I'm thinking one of idris (for loving around with functional stuff), some lisp dialect (for the same reasons), ruby (for loving around with metasploit), or elm (for loving around with web stuff). Lisp is pretty cool. Racket's probably the easiest to get started with/least warty.
|
# ¿ Oct 16, 2015 23:03 |
|
Racket might be getting dependent types too soon, so that's pretty neat.
|
# ¿ Oct 16, 2015 23:09 |
|
pepito sanchez posted:as for haskell i read a bit about it recently, and the answers for it are always so obscure. i don't see real world application in it at the moment, yet everyone says it'll make you think as a better programmer by practicing it. it's something i can see happening considering its capabilities. but then again - in the same way - i can see myself being a better programmer focusing more of my time just learning more about C, something still widely used and applicable. i don't yet see how the restrictions of a programming language i don't know could make me better at something i already somewhat know. it's not like re-learning a keyboard's layout and programming your brain to get used to dvorak instead of qwerty the homekey way. OO langs have design patterns that transcend the specific language you're working in, functional programming has "don't-gently caress-up"s, and the fact that most of them dynamically typed make them extremely unappealing. fritz posted:ive fought with enough c macroes to know that however good lisp might be, it's not worth it
|
# ¿ Oct 17, 2015 07:32 |
|
MALE SHOEGAZE posted:truth, but doesn't even touch on the actually lovely part of trying to test dynamic poo poo: getting your state set up properly to test.
|
# ¿ Oct 17, 2015 17:51 |
|
There's some pretty cool data-parallel parsing techniques that put SIMD hardware to work.
|
# ¿ Oct 17, 2015 18:39 |
|
Speaking of static typing, web development, and performance, Ur/Web is really cool and should be used more.
|
# ¿ Oct 18, 2015 20:43 |
|
Language designers aren't infallible uber-programmers. They make the same mistakes, it's just harder for them to go back and fix them afterwards.
|
# ¿ Oct 19, 2015 22:36 |
|
Soricidus posted:i'd be more inclined to agree with this if python3 had fixed a few more of these bad decisions
|
# ¿ Oct 20, 2015 01:09 |
|
Blotto Skorzany posted:do the segments have to be split at keyframes for this to work?
|
# ¿ Oct 20, 2015 23:30 |
|
hackbunny posted:C++ has a standard equality method: you overload the == operator for your class. what it doesn't have is a standard hash method
|
# ¿ Oct 23, 2015 19:06 |
|
pepito sanchez posted:i'd like to learn more c/c++ but i never could think of a decent little weekend project i could come up with that wouldn't bore me out of my mind, and help me get a better understanding. A raytracer is a good classic weekend project sort of thing. Gives you a good excuse to play around with performance optimization.
|
# ¿ Oct 24, 2015 18:37 |
|
jre posted:Hmm, So I could use the slack app on my phone to let the team know my train didn't show up, or I could try and access some awful gaffa taped together pile of irc garbage ?
|
# ¿ Nov 17, 2015 05:08 |
|
MrMoo posted:It is still janky on my Macbook Air, I can see canvas + RAF the alternatives are quite challenging though: WebGL or SVG. SVG would not GPU accelerate though, still waiting for Google to unbreak web animations.
|
# ¿ Nov 18, 2015 21:04 |
|
Barnyard Protein posted:where does racket fall on the spectrum? i know where it places me on the spectrum, but there's basically no scripting language i can use at work besides windows .bat files that won't have someone calling me an rear end in a top hat
|
# ¿ Nov 29, 2015 21:07 |
|
Suspicious Dish posted:Have some probably wrong observations about 3D Graphics APIs and Vulkan: http://blog.mecheye.net/2015/12/why-im-excited-for-vulkan/
|
# ¿ Dec 10, 2015 07:37 |
|
Brain Candy posted:but every nanosecond spent translating my Butt type to your Butt type is a nanosecond wasted. Types exist regardless, the only question is how much the compiler knows about them in advance. It sounds like you're just complaining about bad API design regardless of paradigm.
|
# ¿ Dec 20, 2015 23:52 |
|
Definitely better to have the features people can agree on now rather than let them be blocked for years by the ones people can't.
|
# ¿ Mar 7, 2016 22:03 |
|
AWWNAW posted:because it's easier I guess Doing an initial pass to collect top level declarations is really not hard. If for some crazy reason you allow top level declarations without type annotations it requires some care in your type checker, but that's karma.
|
# ¿ Mar 14, 2016 04:26 |
|
Athas posted:Haskell slow. The performance ceiling is actually remarkably high. As with any language, it does take a bit of specialist knowledge to get the most out of your resources, of course.
|
# ¿ Mar 16, 2016 20:00 |
|
Bloody posted:wait im confused https://en.wikipedia.org/wiki/Tail_call#Syntactic_form posted:Here, the call to a(data) is in tail position in foo2, but it is not in tail position either in foo1 or in foo3
|
# ¿ May 6, 2016 19:58 |
|
Brain Candy posted:i think partly that you can just go ahead and do things that are much harder to express fully in a static type system
|
# ¿ Jun 9, 2016 10:14 |
|
Heterogeneous anything usually only makes sense if you pretend algebraic datatypes don't exist.MononcQc posted:It's nice because you can use similar stuff for TCP sockets like [raw, keep_alive, whatever] and merge that list with SSL options like [{private_key, "some data"}, {cipher_suites, ["AES-...", "ECDHA-..."]}, {sni_hostname, "example.org"}, ...] and have it work together. I guess you would enumerate all the possible combinations in your type signature if you really wanted to, you're just not forced to do it in a dynamic lang.
|
# ¿ Jun 9, 2016 18:45 |
|
|
# ¿ May 3, 2024 22:06 |
|
MononcQc posted:The types are just not necessary to make it work, and not all type systems are necessarily nifty enough to allow that without problem, or to encode all constraints properly (i.e. you probably can't have a file that is both using 'raw' encoding and a 'utf8' encoding at once, but encoding that in the type system is often not doable and still requires external logic anyway)
|
# ¿ Jun 9, 2016 18:57 |