Settings

Theme

Show HN: Isomorƒ, an experimental software development paradigm

23 points by aaron_kent 9 years ago · 20 comments · 2 min read


Hi HN! We’re the founders of isomorƒ (https://isomorf.io), an experimental software development paradigm. isomorƒ is a structured cloud IDE designed around the ideas of functional programming and serverless architecture and built to reduce barriers to entry and increase developer efficiency.

We wanted to see if we could reimagine the software development process in a way that would be more automated and assistive, less redundant, and more flexible. Drawing heavily on the concepts of functional purity, static typing, and statelessness, our premise was to design a simple, "low power" representation (i.e., AST) that serves as an easily manipulated backbone for storage/analysis, and then build a structured editor on top of it that allows for very flexible syntax and syntactic sugars. The simplified central storage allows us to offer refactoring, debugging, optimization, and reuse assistance that is often limited by traditional text-file-based editing.

Here is a tour of the concept that ends in a sandbox where you can play around: https://isomorf.io/#!/tour

A few things to note:

- Editing. The editing is structured, so there are no syntax errors (e.g., no mismatched braces). The editing is also propagational (i.e., if you rename or delete something, that change is propagated everywhere that applies). We have built distinct mouse vs keyboard paradigms. You can double-click to see menus, or you can use keyboard shortcuts. (Look for the keyboard legend button for details).

- Deployment. Current focus is on microservices as this was the most universal, easiest to implement deployment. But native apps and HTTP servers are in the works.

- Progress. What we have is very much a work-in-progress, but it’s enough that we wanted to share and get some feedback.

email: feedback <at> isomorf.io

beta release signup: http://eepurl.com/c0CaeX

blog: https://medium.com/isomorf-blog

Thanks!

borplk 9 years ago

Great to see Isomorf here. I have commented multiple times about it before in the context of the next generation of programming languages (or more generally, moving away from plaintext).

Here's a relevant one just 5 days ago under "What next?":

> The elephant in the room is graduating beyond plaintext (projectional editor, model-based editor).

https://news.ycombinator.com/item?id=15053260

  • aaron_kentOP 9 years ago

    Thanks! We've seen your mentions, and we appreciate your enthusiasm. We clearly have similar visions for next generation development stacks.

    We'd love to get your feedback and discuss in more detail! We think that even beyond the non-plaintext representation, an IDE married with storage can enable a lot of powerful analytical features and services.

    Do you have any recommendations for where else we can find a good audience for this? Any other communities talking about this direction for dev tools?

dhass 9 years ago

This seems like a novel approach to development. Really moving away from a traditional IDE toward one that considers the modern development and deployment stack. Will be cool to see how a growing community can better support intelligent code sharing

petercoolz 9 years ago

Wow that's a really impressive and well put together demo and overview. Really easy to follow and I'm glad I went through the whole tour. Question - you mentioned optimizations but I didn't see that in the tour. How would that work?

  • aaron_kentOP 9 years ago

    Thanks!

    As far as the optimizations: we transpile the code to different target runtime languages where we can automatically instrument different optimizations. Currently our microservice runtime is Scala code and we can add a cache layer around any function application or a parallelization queue around any map-like operations on iterable types (e.g., List).

    The application deployment UI let's you pick the points of optimization (a top level function for a cache, or map-like application for a parallelization). Then you can pick the tier of optimization implementation you want (e.g., local in-memory map vs remote Redis instance; local thread-based parallelization vs remote actor-based cluster parallelization)

bkoz 9 years ago

Cool concept -- it does seem like the future is in functional coding approaches.

I'm excited to play with it, but I am not the most comfortable with any of your current language choices. Any plans for PHP or JS syntax wrappers?

  • aaron_kentOP 9 years ago

    Thanks!

    While we customized syntax in the tour & sandbox to closely match familiar languages, the way code is rendered is totally configurable: the underlying ASTs are passed through a rendering layer with keywords/symbols/etc populated. So adding new syntaxes is pretty easy. We will add those to the list!

    Also worth mentioning is that right now renderers are defined by us as part of the webapp, but ultimately they will be loaded as isomorƒ code, allowing users of the platform to design and share new ways to interact with code.

sameermanek1 9 years ago

Interesting idea. How do you think about language-specific libraries? E.g., is there a scikit-learn coming to isomorƒ soon?

thezbg 9 years ago

Looks really interesting

Morgan19 9 years ago

Truly a fascinating concept with dynamic applications!

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection