8 ms·
The change of focus is perhaps hard to understand without more context. Basically, there are two really different modes of programming: Most of what we see on
by jamii 11y ago
The change of focus is perhaps hard to understand without more context. Basically, there are two really different modes of programming:
Most of what we see on HN is about building applications, servers, websites etc. Big, monolithic things that take weeks to years and are deployed to somewhere else and used by lots of people. Most programming tools are built for this kind of work, where the time between writing the code and actually using it is days or months.
But the people we want to make programming accessible to are mostly knowledge workers. Their work is characterised by a mixture of manual work and automation, throw-away code and tools rather than applications. It's better supported by Excel, SQL, shell scripting etc than by the big languages and IDEs.
We realised that we can do much more good focusing on that kind of programming.
- Fomite 11y agoThis is a really helpful perspective. For example, I've started referring to myself as a "user" of Python rather than a programmer.
- agumonkey 11y agoCare to explain a bit your choice of word ? Funny how I often heard about the user / programmer dichotomy. Always just felt like a user in the know.
- wingerlang 11y agoSeems like it has to do with the end result. If your goal is to make an app, then you have to program that app. So you are a programmer. If you want something quick, maybe throwaway-able, you pick something to use for that, and you are a user. You could build a program with that throwaway script without being a programmer though. Just like I can build a house without being a carpenter. That's my interpretation though.
- Fomite 11y agoI'd divide it as essentially "User of Packages" vs. "Writer of Packages", and of course, the dichotomy is not actually a clear one. But the choice was to suggest that there are some people for whom the programming language and its libraries are not an end of itself, and "Just crack it open and write your own thing for X..." is essentially a non-starter. I think it's useful to distinguish between the two groups, because not only do they have different skill sets, but they have different motivations. For example I will never directly be evaluated on the performance or style of my code in the way a programmer might be - only the paper that code helped me write.
- biot 11y agoWas there a problem inherent to building large applications that you found intractible, or is the shift solely due to focusing on entry-level accessibility?
- ibdknox 11y agoThe shift is primarily due to the fact that relatively few people seemed to want to build large applications, including ourselves. There are definitely some differences between building large apps and these more communication/analysis tasks, but we think the foundation itself applies to both. The language is an adaptation of the Dedalus[1] semantics, which the BOOM lab did some amazing things in distributed systems with [2]. If it can build a clone of hadoop, chances are it can build most things. We've built a number of our compilers in Eve, several of our editors were bootstrapped, we've built numerous examples, most recently a complete clone of Foursquare. Before we'd want others to try and do that though, we need our tooling to get a bit better. We expect that the Eve editor will get there eventually kind of out of necessity - we're going to bootstrap a lot of it this time too, starting with the compiler. [1]: http://db.cs.berkeley.edu/papers/datalog2011-dedalus.pdf http://db.cs.berkeley.edu/papers/datalog2011-dedalus.pdf [2]: http://db.cs.berkeley.edu/papers/eurosys10-boom.pdf http://db.cs.berkeley.edu/papers/eurosys10-boom.pdf
- igravious 11y agoMy take from the abstract of Dedalus is "and adds an explicit notion of logical time to the language" If you're interested in building a tool that relies on distributed communication and data flow it makes sense to bake a notion of logical time into the the system. Boolean logic has no notion of time. If you propose x != y say, you could be saying that throughout the lifetime of the system x is never equal to y or you could be comparing x to y at this instant in time. It depends of course if these are constants and/or variables. Type theory shows that different logics map to different type systems so what may be holding programming back is that the logic of a system is not _dynamically_ selectable as the system evolves. Most (all?) programming languages have a simple boolean logic, mutable state, and just tons and tons of syntactic sugar on top of that. Obviously languages like Haskell and Clojure are more advanced (algebraic data types in the former and immutable data structures in the latter) but they still have a fixed/static way of being in the world if you know what I mean. Natural language shows us that humans use many different types of logic contextually. Logic is not monolithic, maybe Eve is an admission of this? Sorry if this makes no sense, it's just a hunch that's been percolating for a while.
- rgoddard 11y agoI am currently working as an Actuarial Analyst, but I have also worked several years as a programmer. As an analyst the tools I use are excel, access, SAS Enterprise guide and Oracle SQL developer. One of the big problems I face is that we have no good way to abstract away a process and really make it reusable. My general work flow is using SAS to pull data from multiple sources, combine and run the data through some series of logic/calculations. Then take the resulting data, copy to excel for some additional analysis or report. This might be for a monthly/quarterly report or an analysis that needs to be update with the additional runout of data. But these steps are all tightly coupled together. If I want to rerun the same logic on a different data set, or an updated data set I will copy and paste all of the files, update the queries. I have no way to bundle them together so that I can easily reuse with different data sources, or refreshed data. Really want I want is someway to encapsulate different sets of data transformations/calculations into to functions to reuse them in different contexts and among different people.
- myoffe 11y agoI haven't used it extensively, but SQL Server Integration Services (SSIS) looks like it does a lot of the things you're talking about.
- wesd 11y agoIt does. There are other ETL tools as well. https://en.wikipedia.org/wiki/Extract,_transform,_load#Tools https://en.wikipedia.org/wiki/Extract,_transform,_load#Tools
- jsandiego 11y agoWe are having a similar set of issues where I work (insurance industry). Always looking for folks to chat with/discuss similar issues
- drdoom 11y agoIs there a way to get in touch with you?
- skybrian 11y agoIt seems like this might be a good fit with what Sandstorm is doing (making personal servers easy to use). Even if I'm writing a program for myself, I still want to access it from multiple computers and share the results.
- omouse 11y agoYes! This is a great niche for them to tackle with better tooling.
- pekk 11y agoGranted, shell is useful for concise interactive one-liners. Granted, Java is a terrible replacement for shell. But there's no kind of programming where shell is better than Perl, Python or Ruby - "big languages" which, unlike Java, were designed to be useful for scripting by people who aren't full-time programmers. Because they are "big languages" they also have the property that you can build bigger things on them, starting from your messy prototypes. It's better not to even try that with shell or Excel.
- ilaksh 11y agoMy opinion is that programming is literally defined by editing text files with difficult to comprehend source code. Anything that is easier or deviates from that is by definition not programming and therefore something users do. The rationalization is that anyone using an easier tool to program computers without as much code must not be able to use code. Therefore us programmers are better than them. Its very similar to the earlier era of punchcard programmers scoffing at assembly language programmers. Or hand-tool craftsmen sneering at mass-produced component-based manufacturing. That infantile belief system will persist until super-intelligent AIs revise it or (maybe) the next generation wises up.
- KarlosMueller 11y agoThat is a much better and saner explanation than these "revolutionizing programming"-grandiosity talks. Eve will always tend to be missunderstood at Hackernews or Reddit. It simply is not aimed at professional developers and intended to build production systems.