Hacker Newsnew | past | comments | ask | show | jobs | submit | more monsieurbanana's commentslogin


That's a bit like saying that both parties have done bad things so they're equally evil. There's layers to this thing


If it's that bad, you might be better off paying extra to avoid shitty outsourcing companies.

But you're probably not the person I should telling this, developers aren't usually in charge of that.


You wont know how bad the product produced by consultants will be until it already had effect.

And on pricing specifically, both shitty and good consultancies charge about the same. The ones that charge well below market are an outlier that will guarantee bad product - those are to be avoided.


Who mentioned outsourcing?


> Who mentioned outsourcing?

lijok wrote:

When we get consultants in to speedboat a new system, we give them their own separate service. Saves a lot of time and de-risks our beautiful monolith.


It would only be a false statement if the person meant that it's true for 100% of the time, always, rather than some kind of majority of the time.

Which is the least charitable way of interpreting their comment and as such against hn guidelines.


Out of maybe the couple dozens Airbnb reservations I've made, only 2 that I can remember where for places that had a long term tenant living there and rented through Airbnb ponctually. Everything else was about half obvious disguised hotels (whole floor / building rented that way), or belonging to a particular but rented short term the whole year.

It just feels dirty to me now to use Airbnb, but that's not even why I stopped. It's now not necessarily cheaper than a hotel and with little recourse when you get a dud.


I'll take the notepad bit as satire.

I think simplicity is underrated too, but I hope you'll agree that your single c file use case is rather niche.


For a lot of small and even medium-size C projects, one file is enough. IMHO having dozens of tiny files with only a few dozen lines each is an antipattern.


How many LOC is "medium" in your view? Most devs I work with would only put a thousand lines of code in a single file (obviously subjective, depends on density, comments etc). I'd still consider that a toy app, as opposed to my medium mark at about 100k LOC. At that stage you certainly benefit from all the tooling you seem to eschew. "Large" projects (the likes of Linux and Chromium) have so much mass they tend to have fully customized build systems.


I wrote my first Java code in Notepad and compiled it from command.com (as Windows 9x still called it). It was... fine, I guess? For the era? Not what I would want to do but far from unmanageable.


and pure-Win32 is also niche


Because it's a fast way to get that interactivity, rather than having to explicitly code it yourself.

A good example are modern math videos on youtube, like this one (not saying that they're using G9.js in particular): https://www.youtube.com/watch?v=spUNpyF58BY

It's 20 minutes of changing graphics. You could code all of that with P5, and it would be an excruciatingly long process. G9.js would get you there in a fraction of the time.


Yes but that's not what they're discussing, it's about the sites that have some low limit like 8-16 characters.

And if someone knows why banks are specially prone to having crapshit password requirements... Flashback to my french bank that had a password that needed to be exactly 8 digits, no letters or other, and that you could only type by clicking on a digital numpad that had the numbers randomly sorted.


Interconnected old mainframe systems fwiw... In the end, a lot of these banking systems are connected back to mainframe systems with a LOT of legacy cruft that nobody has the nerve to actually update. It may not even be hashed or encrypted, which is part of why banks also add a second factor/cookie, though the implementation could/should be better.


Lisp is a family of languages, not any single one. There's (thankfully, lisps needs innovation like everything else) room for different types.

In the C family for example, you have both C and Javascript.

> It would also be nice to port programs from one dialect to another without major editing

If the languages are the same, they wouldn't be different dialects, they would be the same language, so porting them doesn't make much sense. I think the closest thing to what you're describing is Clojure, where you can swap the targeted environment (JVM if you're working on a server, babashka if you're making a script, javascript if it's a web app, dart/flutter if you're making mobile apps, etc...)


C and Javascript are very different languages with similar syntax. Common Lisp and Picolisp are very similar languages/dialects with different syntax/function names. Common Lisp based its syntax on Maclisp so that Maclisp code could run without much alteration on common Lisp systems.


> C and Javascript are very different languages with similar syntax

I don't know specifically about Picolisp, but many lisps are as different between themselves as C and Javascript are.

For example, Scheme is a functional language, while Common Lisp is multi-paradigm

One has only lexically scoped variables, the other has also dynamically scoped variables.

They have two completely different macro systems (hygienic vs non-hygienic).

One has continuations, the other doesn't.

These are just the few that come to my mind right now. Those are not trivial difference, they completely change the way you reason about you program, and what you can do with it.


Scheme is not functional per se.

Scheme the language supports multiple programming paradigms.

The culture pushes people towards functional programs, but having mutation available has always been part of Scheme.

Most Scheme implementations also offer some sort of object oriented solution.


I first read “suffer from some sort of object oriented solution”.


Scheme exists in various forms and standards. There are small educational definitions and implementations which provide most SRFIs and thus have all features of CL and more. https://srfi.schemers.org

At its core Scheme is procedural, imperation and functional. Common Lisp is also "object-oriented" in its core.


> In the C family for example, you have both C and Javascript.

There is no reasonable sense in which JavaScript is in the “C family”. It's not really even in the broader Algol family that C is in, being most closely related to Self and Scheme (the latter being in the Lisp family.)


I just took a random example from the wikipedia page of C languages:

https://en.wikipedia.org/wiki/List_of_C-family_programming_l...

I don't think that takes away from my point, in each family of programming languages you can find very different ones and lisp is not a language but a family of languages.

Besides using S-expressions, I don't know what else you would need to be considered a Lisp.


If you know C, you don't need to learn a new syntax if you learn C++, Java, C#, or Javascript, except where their semantics is different from C. In those languages, this was a good design choice, which encouraged people to adopt those languages.


A language syntax is quite a bit more than { }.


C family here refers to syntax style. In this case the general use of curly braces to denote blocks and often semicolons to denote end of statements. Another example of such a family would be the ML language family with languages like Haskell and F Sharp.


Is Haskell in ML family? I know Fsharp and Ocaml are but Haskell seems to be very different from them synctically with the only similarity being that it is functional


"port programs from one dialect to another without major editing" isn't the same as "the languages are the same", so why did you parse it that way?


Is the size of the erlang vm one such point? I think I remember reading it's about 500mb, and you won't find it installed by default in many systems.


Startup time is another. For example:

    $ elixir test.exs
    hello, world!

    $ hyperfine "elixir test.exs"
    Benchmark 1: elixir test.exs
      Time (mean ± σ):     471.1 ms ±   2.6 ms    [User: 187.4 ms, System: 83.1 ms]
      Range (min … max):   467.1 ms … 475.6 ms    10 runs
Compared to:

    $ ruby test.rb
    hello, world!

    $ hyperfine "ruby test.rb"
    Benchmark 1: ruby test.rb
      Time (mean ± σ):      36.3 ms ±   2.6 ms    [User: 26.0 ms, System: 8.4 ms]
      Range (min … max):    34.5 ms …  53.6 ms    53 runs
In practice, I've been able to get the ruby startup time to as low as 6ms - this is what I use for scripts running as keyboard macros, for example. I cannot practically use elixir for that.


Using escript, I am able to almost halve the startup time. But it's still ~4x slower than ruby.

  hyperfine "./derp"
    Benchmark 1: ./derp
      Time (mean ± σ):     241.0 ms ±   7.4 ms    [User: 146.9 ms, System: 170.8 ms]
      Range (min … max):   235.1 ms … 261.7 ms    11 runs


Huh, interesting. I bet for keyboard macros, it would work better by invoking a call to something that is already running to reduce startup time. Kinda like the emacs server.

BEAM should still be able to compile new code on the fly, for one-off scripts


> keyboard macros [...] would work better by invoking a call to something that is already running to reduce startup time

Maybe, but that comes with two disadvantages:

- I would have to re-architect my scripts to work like that, and run a server with uncertain memory costs perpetually; and - I would have to use something with faster start time to run the call on my keyboard macros, e.g. bash, which would mean writing bash instead of elixir/ruby and/or being clever.


Not even close. A Nerves (iOT) package with Linux Kernel and Erlang/OTP VM and our App code comes in at 21Mb. See: https://nerves-project.org/


Most of my phoenix apps sit under or around 100mb resident, and they load a fair bout more than a script probably would.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: