Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
kbp
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
9 ms
·
31.
▲
by
kbp
7y ago
Use tramp with Emacs and you can interact with remote machines as if they were local. Who cares if the server only has vim, you have Emacs.
32.
▲
by
kbp
7y ago
The significant difference is that in Rust, like in Lisp, `if` is an expression, so if-else essentially is the ternary operator. const x = cond1 ? a : cond2 ? b : c becomes in Rust let x = if cond1 {
33.
▲
by
kbp
7y ago
The part that is relatively unique to JS is where extra arguments passed to a function are silently ignored. In most every other language, the function passed to map takes 1 argument, which is also the common case in JS. But JS always passe
34.
▲
by
kbp
7y ago
It doesn't matter when you're making the edit, it matters when you're looking at the diff and skimming through a hundred identical changes for the things that are actually different.
35.
▲
by
kbp
7y ago
The "who wrote this?" mentality is a trap that's good to avoid. Get comfortable with different ways of writing something that, while they might have different tradeoffs, accomplish the same thing, and try to see past that. Un
36.
▲
by
kbp
7y ago
What features are you thinking of in those languages? I don't know Swift but I can't think of anything comparable in OCaml.
37.
▲
by
kbp
7y ago
In Emacs, every key is evaluating some Lisp expression. You are interactively using Emacs Lisp in a funny sort of REPL. Most of the time you just use predefined commands and they do what you want, but if you know there's a whole progra
38.
▲
Lambda: The Ultimate Imperative (1976) [pdf]
(dspace.mit.edu)
80 points
by
kbp
7y ago
|
8 comments
39.
▲
What's in a Name? (1993)
(nhplace.com)
1 points
by
kbp
7y ago
|
0 comments
40.
▲
by
kbp
7y ago
I think we're coming at it from different angles. My point is that there shouldn't be any abstraction to write, and it should just be the way the language works. Primitive slot access in Java is not just a get/set interface,
41.
▲
by
kbp
7y ago
Maybe instead of "restrict" it would be better to say "be cognizant of." If you want to expose a get/set interface, that's fine, but doing it with a public property in Java additionally says "and it's
42.
▲
by
kbp
7y ago
You're always using a getter. It's just a question of what syntax your language provides for different ways of getting values, and how much they say about your implementation. Most people don't have a problem with getters and
43.
▲
by
kbp
7y ago
The important thing is restricting your public interface, hiding implementation details, and thinking about how easy your code (and code that uses it) will be to change later. It's not an OO vs anything thing. When you want a value fro
44.
▲
by
kbp
8y ago
I don't know a lot about the programme, but I would have assumed there was always a similar focus on Microsoft's interests. Did they used to support people who weren't very interested in new/trendy/popular MS techno
45.
▲
MVC: Xerox PARC 1978-1979
(heim.ifi.uio.no)
1 points
by
kbp
8y ago
|
0 comments
46.
▲
by
kbp
8y ago
> MVC is a 20 year old pattern More like 40; it's from late 70s Smalltalk.
47.
▲
by
kbp
8y ago
> Not sure what this means. The only support I need in an editor is the ability to use tab and shift tab on blocks of text to change the indentation level. It's visually obvious when code is correctly indented. In Emacs you can use
48.
▲
by
kbp
8y ago
> Yet you can absolutely write: > String str = "hello,"; > str += "world!"; So it's "immutable" for some lawyerish definition which does me no good. `str` is a mutable reference to an immutable ob
49.
▲
by
kbp
8y ago
> Recursion is the way to go in Erlang / Elixir I think it's important to realise that they're different ways of writing the same thing. For example, in Lisp, the 'do' operator is basically a C-style for loop: in
50.
▲
by
kbp
8y ago
> No loops? That can be life changing. I doubt it would be for someone from a Ruby background, where higher order functions already generally replace built-in loops.
51.
▲
Parallel and Concurrent Programming in Haskell
(oreilly.com)
3 points
by
kbp
8y ago
|
0 comments
52.
▲
by
kbp
8y ago
It's not a wiki; he's free to not merge changes people offer him.
53.
▲
by
kbp
8y ago
LispWorks CAPI is very good. It's a shame it's proprietary and not cheap.
54.
▲
Warren's Abstract Machine: A Tutorial Reconstruction (1991) [pdf]
(wambook.sourceforge.net)
46 points
by
kbp
8y ago
|
6 comments
55.
▲
by
kbp
8y ago
But Unix didn't adopt everything-is-colon-separated-values. Everything being unstructured text leads to a lot of different, incompatible ways of structuring that text. S-expressions themselves aren't important, I think, it's
56.
▲
by
kbp
8y ago
I haven't read it, but the second edition of that book used Javascript for the examples.
57.
▲
by
kbp
8y ago
I was just saying that there's no good reason to have different variables with names that only differ by case; the example you gave where you do like that has a better solution in multiple namespaces.
58.
▲
by
kbp
8y ago
> In fact I often use the "Thing thing" approach to variable declaration and I think I like it. It's an easy way for me to avoid thinking about taxonomy. But it's not that important. If it wasn't possible I c
59.
▲
by
kbp
8y ago
> Another thing that's driving me crazy is case insensitivity. I would never willfully choose a language with case insensitive identifiers. It's driving me nuts. What about it annoys you? Do you often define a lot of variab
60.
▲
by
kbp
8y ago
Smalltalk doesn't have them, either.
More ›