
Show HN: Isomorƒ, an experimental software development paradigm - aaron_kent
Hi HN! We’re the founders of isomorƒ (<a href="https:&#x2F;&#x2F;isomorf.io" rel="nofollow">https:&#x2F;&#x2F;isomorf.io</a>), 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.<p>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, &quot;low power&quot; representation (i.e., AST) that serves as an easily manipulated backbone for storage&#x2F;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.<p>Here is a tour of the concept that ends in a sandbox where you can play around:
<a href="https:&#x2F;&#x2F;isomorf.io&#x2F;#!&#x2F;tour" rel="nofollow">https:&#x2F;&#x2F;isomorf.io&#x2F;#!&#x2F;tour</a><p>A few things to note:<p>- 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).<p>- 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.<p>- Progress. What we have is very much a work-in-progress, but it’s enough that we wanted to share and get some feedback.<p>email: feedback &lt;at&gt; isomorf.io<p>beta release signup: <a href="http:&#x2F;&#x2F;eepurl.com&#x2F;c0CaeX" rel="nofollow">http:&#x2F;&#x2F;eepurl.com&#x2F;c0CaeX</a><p>blog: <a href="https:&#x2F;&#x2F;medium.com&#x2F;isomorf-blog" rel="nofollow">https:&#x2F;&#x2F;medium.com&#x2F;isomorf-blog</a><p>Thanks!
======
borplk
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](https://news.ycombinator.com/item?id=15053260)

~~~
aaron_kent
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?

~~~
iso-8859-1
Come on Lamdu Gitter, the Lamdu team also wanted to set up a community site
for non-plaintext programming.

~~~
aaron_kent
FYI, this led to the creation of
[https://www.reddit.com/r/nosyntax/](https://www.reddit.com/r/nosyntax/)

------
dhass
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
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_kent
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
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_kent
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
Interesting idea. How do you think about language-specific libraries? E.g., is
there a scikit-learn coming to isomorƒ soon?

------
thezbg
Looks really interesting

------
Morgan19
Truly a fascinating concept with dynamic applications!

