Live data from Hacker News

Ask HN: What is the most exciting development in your field right now?

news.ycombinator.com

351–360 of 436 posts

Re: Ask HN: What is the most exciting development in your field right now?

#351
post #133

Earlier quoted context omitted.

Very little on abstract interpretation and SAT/SMT solving. I'm effectively starting from 0. I'll go through the talk, thanks! Why isn't it economical yet?

Google "certified programming with dependent types", "program logics for certified compilers" and "software foundations class". Also, work through the Dafny tutorials, here: http://rise4fun.com/Dafny/tutorial There are some ways in which these tools are not economical. There is currently a big gap. On one side of the gap, you have SMT solvers, which have encoded in them decades of institutional knowledge about genera…

Maybe I'm particularly easy to make happy.

Compilers, in particular optimising compilers are notoriously buggy, see John Regehr's blog. An old dream was to verify them. The great Robin Milner, who pioneered formal verification (like so much else), said in his 1972 paper Proving compiler correctness in a mechanized logic about all the proofs they left out "More than half of the complete proof has been machine checked, and we anticipte no difficulty with the reminder". Took a while before X. Leroy filled in the gaps. I though it would take a lot longer before we would get something as comprehensive as CakeML, indeed I had predicted this would only appear around 2025.

   It sucks when that's in your type system
Agreed, and that is one of the reasons why type-based approaches to program verification (beyond simplistic things like Damas-Hindley-Milner) is not the right approach. Speedy dev tools are vital. A better approach towards program verification is to go for division of labour: use lightweight tools like type-inference and automated testing in early and mid development and do full verification only when the software and specifications are really stable in an external system (= program logic with associated tools).

   making usable developer tools is much, 
   much harder than doing original research.
I don't really agree that the main remaining problems are of an UI/UX nature. The problem in program verification is that ultimately almost everything you want to automate is NP-complete or worse: typically (and simplifying a great deal) you need to show A -> B where A is something you get from the program (e.g. weakest pre-condition, or characteristic formula), and B is the specification.

In the best case, deciding formulae like A -> B is NP-complete, but typically much worse. Moreover, program verification of non-trivial programs seems to trigger the hard cases of those NP-complete (or worse) problems naturally. Add to that the large size of the involved formulae (due to large programs), you have a major theoretical problem at hand, e.g. solve SAT in n^4, or find a really fast approximation algorithm. That's unlikely to happen any time soon.

We don't even know how effectively to parallelise SAT, or to make SAT fast on GPUs. Which is embarrassing, given how much of deep learning's recent successes boil down to gigantic parallel computation at Google scale. Showing that SAT is intrinsically not parallelisable, or even just GPUable (should either be true), looks like a difficult theoretical problem .

    as a researcher, I both 
    am not rewarded for
I agree. But for the reasons outlined above, that is right: polishing UI/UX is something the commercial space can and should do.

   he community of people that care enough 
   about their software reliability is very 
   small and modestly funded.
This is really the key problem. Industry doesn't really care about program correctness that much (safe for some niche markets). The VCs of my acquaintance always tell me: "we'll fund your verification ideas when you can point to somebody who's already making money with verification". For most applications type-checking and solid testing can get you to "sufficiently correct".

You can think of program correctness like the speed of light. You can get arbitrarily close but the closer you get the more energy (cost) you have to expend. Type-checking and a good test suite already catch most of the low-handing fruit that the likes of Facebook and Twitter need to worry about . As of 2017, for all but the most safety critical programs, the cost of dealing with the remaining problems does is disproportionate in comparison with the benefits. Instagram or Whatsapp or Gmail are good enough already despite not been formally verified.

Cost/benefit will change only if the cost of formal verification is brought down, or the legal frameworks (liability laws) are changed so that software producers have to pay for faulty software (even when it's not an Airbus A350 autopilot). I know that some verification companies are lobbying governments for such legislative changes. Whether that's a good think, regulatory capture or something in-between, is an interesting question.

Another dimension of the problem is developer education. Most (>99%) of contemporary programmers lack the necessary background in logic even to think properly about program correctness. Just ask the average programmer about loop invariants and termination order. They won't be able to do this even for 3-line programs like GCD. This is not a surprise as there is no industry demand for this kind of knowledge, and will probably change with a change in demand.

Re: Ask HN: What is the most exciting development in your field right now?

#352

I do electronic music. The rise of platforms like Bandcamp and Patreon, and the abundance of high quality free/inexpensive tools and guides is raising the bar for quality in independent music, and making it easier for more people to get paid in whatever niches they prefer (vs. going for a mass audience).

I wwould love to get started, I've been looking for a new hobby and thought that is perfect. How should I start? :)

I'd recommend selecting a DAW and learning it. Really learn it. We have countless great tools in music production available - it mostly comes down to how well you can handle them.

Personally, I love and recommend Ableton Live which features an easy to use interface, workflow, lots of options for experimentation and extensions, great and large community as well. Good choice for beginners and experts alike. Plus, with Ableton Push you have the option to get an excellent hardware controller that is tailored to your DAW, but it isn't something you'd need from the start.

Alternatively, you almost can't beat Logic on price considering its features and performance. I'd say it is more complex, but that's subjective.

Both Logic and Live (Suite version) offer a complete solution, including high quality instruments, synths and effects.

Hardware is optional, but a simple midi keyboard for less than a 100 bucks will help a lot.

Re: Ask HN: What is the most exciting development in your field right now?

#353

It's all subjective, but as a data analyst I'm excited about probabilistic databases. Short version: load your sample data sets, provide a some priors, and then query the population as if you had no missing data. Most developed implementation is BayesDB[1], but there's a lot of ideas coming out of a number of places right now. [1] http://probcomp.csail.mit.edu/bayesdb/

Isn't that fundamentally the Netflix problem? Or am I missing something?

Re: Ask HN: What is the most exciting development in your field right now?

#354

Earlier quoted context omitted.

I expect that junior developer in software field should be able to program only. That is very often the case. It needs to change. Testing is a part of software development, and anyone who writes software should be aware of it. I feel the same way about documentation. And requirements. You can't write good software without knowledge of the processes that surround development. It isn't enough just to be able to write g…

Maybe. Personally, I've come to think that you need the right tool for the right job. If you spend more time writing / running tests that you would fixing the bugs they find, you may be doing it wrong. If you're writing documentation no one will read, you may be doing it wrong. They clearly do have a place though. As for maintaining a set of requirements... I appreciate there must be some environments where what is r…

I appreciate there must be some environments where what is required is well understood and relatively stable.

Actually there isn't. Every project, no matter how it's managed, changes as it goes on. It has to because you learn and discover things along the way. That's why maintaining and understanding project requirements and how they've changed is incredibly important. If you don't keep on top of them then you end up with a project that wanders all over the place and never finishes. Or you build something that misses out important features. Or the project costs far too much. Requirements are not tasks, or epics, or things you're working right not. They're the goals that the tasks and epics work towards.

(My first startup was a requirements management app.)

Re: Ask HN: What is the most exciting development in your field right now?

#355
My field of interest is censorship resistant systems. Systems like ZeroNet[1] are quite fascinating and are quickly becoming popular and used. Essentially they're decentralized via the bittorrent network. One cool thing that it brings to the table is the idea of having users modify a website (similar to how your comment modifies this page) - which is a hard problem in a decentralized system. They have come up with an interesting way for users to do this using trusted third-party certifying systems which are still totally decentralized (because users can switch to others when they see fit).

1. https://zeronet.io/

Re: Ask HN: What is the most exciting development in your field right now?

#356
post #256

Earlier quoted context omitted.

Maybe. Personally, I've come to think that you need the right tool for the right job. If you spend more time writing / running tests that you would fixing the bugs they find, you may be doing it wrong. If you're writing documentation no one will read, you may be doing it wrong. They clearly do have a place though. As for maintaining a set of requirements... I appreciate there must be some environments where what is r…

> If you spend more time writing / running tests that you would fixing the bugs they find, you may be doing it wrong. Why should those 2 activities be compared? They do not compare: writing/running tests is about discovering the bug, not fixing it. You still need to fix it after you have done your testing activity. The time spent writing/running tests should better be compared to the time spent in bug discovery witho…

You're right, unless you're at an extreme (zero automated testing, zero bugs found in the wild) it's much more nuanced as to what the balance is (or should be), but there is a balance.

Re: Ask HN: What is the most exciting development in your field right now?

#357
I am a physicist in biology (so take these with a grain of salt) and CRISPR is arguably the most exciting development there. This technique allows to edit DNA based on guiding RNAs which can be readily synthesized in contrast to DNA binding proteins required for targeted editing before. What's more the same technology can be used to adjust gene regulation too. These techniques are not only giving basic research a big boost, but also making many new treatments possible.

Another hot topic are organoid bodies and organs-on-a-chip. These are experimental systems where stem cells are turned to grow into structures similar to embryos or organs that allow the study of development and facilitate drug testing etc.

Thirdly, advances in sequencing made it possible to study what kind of bacteria live symbiotically within and on us. The composition of this so called microbiome seems to widely affect body and mind.

Finally, in my personal field, the simulation of how "simple" cells build complex structures and solve difficult tasks, the most exciting development is GPGPU :-)

Re: Ask HN: What is the most exciting development in your field right now?

#358

In Bioinformatics/DNA sequencing I'm probably most excited by Illumina's push toward a 100USD genome. Their current scale-up of instruments I think means that they're looking to aggressively push into diagnostic applications. The lack of competition is unfortunate however.

Long reads from PacBio, Oxford Nanopore, and 10x are also exciting. This new tech coupled with HiC for scaffolding and single cell sequecing brings up the possibility of complete knowledge of your genome, the collection of strains in a metagenome, or all the types of cells in a tissue/cancer sample.

Re: Ask HN: What is the most exciting development in your field right now?

#359

Not really my main field, but in web technology it seems that severless architectures such as Amazon Lambda will be a pretty big game changer in the near future: Lambdas are lightweight function calls that can be spawned on demand in sub-millisecond time and don't need a server that's constantly running. They can replace most server code in many settings, e.g. when building REST APIs that are backed by cloud services…

I have to admit, I'm pretty bearish when it comes to serverless. Mostly because it's an abstraction which leaks to hell and back. Your input is tightly restricted, and with Amazon in particular, easy to break before you even get to the Lambda code (the Gateway is fragile in silly ways). Your execution schedule is tightly controlled by factors outside your control - such as the "one Lambda execution per Kinesis shard"…

I'm bearish on it right now, though conceptually it's a fantastic idea which just has quite a way to go before it's ready for prime time. I definitely think a lot of people have jumped the gun by pushing serverless before it's really ready for the outside world.

Re: Ask HN: What is the most exciting development in your field right now?

#360

My field of interest is censorship resistant systems. Systems like ZeroNet[1] are quite fascinating and are quickly becoming popular and used. Essentially they're decentralized via the bittorrent network. One cool thing that it brings to the table is the idea of having users modify a website (similar to how your comment modifies this page) - which is a hard problem in a decentralized system. They have come up with an…

I'd take ZeroNet with a grain of salt.

I helped with it for a little while, but the main developer was resistant to:

* Using a package manager or bundling dependencies into a compressed form. Dependencies had to be in the same git repo, fully extracted. (A bit of a "code smell")

* Dependencies could take months to get security updates.

* Documentation couldn't be in the git repo.

* Python 3 was "not an option"

Also:

* The main developer has limited experience with the torrent protocol.

It is an interesting project: but it is not a private or secure one.

Post reply on HN