HNHacker News
TopNewBestAskShowJobs

matijash

856 karma · joined September 10, 2015

Working on https://github.com/wasp-lang/wasp matija@wasp-lang.dev
submissionscomments
matijash··on Show HN: Wasp (Alpha) is out – DSL for building web apps with React/Node/Prisma
Thanks a lot for your support! We are ourselves not yet sure in which direction will Wasp evolve but find it very exciting to work on it, especially when we see other people being excited about it too :)
matijash··on Show HN: Wasp (Alpha) is out – DSL for building web apps with React/Node/Prisma
Thanks for giving Wasp a spin! Yes, we put a lot of effort in the generated code to look "human" - it is not perfect and we had to make some compromises for now to move faster, but it is something that is high on our list of the priorities. Hope we'll be able to put even more resources in that, once we flesh out the basic features.
matijash··on Show HN: Wasp (Alpha) is out – DSL for building web apps with React/Node/Prisma
Hi HN! Together with my brother I've been developing Wasp - a language for building web apps with as little boilerplate as possible. It is open-source and integrates with React/Node.js/Prisma. We just released Alpha and are looking for testers and contributors.

Thanks for any feedback and comments!

matijash··on Intro to type-level programming in Haskell
Hey everybody! I was learning about type-level programming and then wrote a blog post (actually, two) about it. I started writing it mostly for myself for the future reference but thought maybe somebody else also might find it helpful. It is more aimed for the beginners, let's say somebody who went through LYAH.

I also had a few things I was unsure about so I marked them as TODOs. Thanks for reading, appreciate all the comments!

matijash··on Ask HN: What are your favorite low-coding apps / tools as a developer?
What a great thread! To add to the list of tools other already mentioned, we are building https://wasp-lang.dev/ - it is a language that aims to be dev-friendly and compiles to React/Node. We are still pre-Alpha but would love to get your feedback.
matijash··on Ask HN: What projects are you working on now?
Hey everybody! I am together with my brother working on a DSL for building full-stack web apps. It is a pretty big task but we are trying to go step by step.

It's an OSS, you can check it out here: https://github.com/wasp-lang/wasp

Our latest demo, visually inspecting your web-app code: https://wasp-lang.dev/#wasp-inspector

Would love to hear what you think!

matijash··on Show HN: Wasp Inspector – conditionally generate web-app with a debug layer
Hey smiljo, thanks for the question! You are right, it might be cool to be able to edit code as well from this interface, not only inspect it.

We are still pretty early so at this moment it's hard to say how would this exactly work. But I believe we could also make it a part of the git and CI workflow. E.g. changes would get applied to the .wasp files and committed and the new revision would get deployed.

matijash··on Write a code that endures endless business requirements:Designing Software
Was there supposed to be an URL?
matijash··on Ask HN: Mostly home for the next month. What part of programming to dive into?
I would recommend functional programming, it definitely gets the brain working and will broaden your horizons.

If you are interested, we are working on an OSS programming language compiler in Haskell, and we are looking for contributors :) https://github.com/wasp-lang/wasp

matijash··on Ask HN: How do you quickly prototype a webapp in 2020?
https://bubble.io/ - for non-developers, good for prototyping and simple apps but not scalable

https://remaketheweb.com/ - seems cool, full-stack framework, not totally flexible but might be interesting for simpler apps

We are working on an open-source project for developers that would be both easy to use but also flexible and scalable. You can see it here: https://wasp-lang.dev/ - it's still a work in progress, but would be cool to get your feedback!

matijash··on Ask HN: What features would your ideal programming language have?
As some already mentioned below, in my opinion it would depend on the purpose of the language. In the case of the general language, these are some of my personal favourites:

- expressive type system

- easy & intuitive to start with, but also powerful if needed (low floor, high ceiling)

- has a relatively small set of core concepts which are then composed together to build things further

- rich set of libraries (although pretty obvious and not really a feature)

I think our search for the "grail" general language will continue, probably forever. Languages such as Haskell, Rust & Go (and probably a lot of others I haven't heard of) are breaking the boundaries and introducing new concepts which then slowly spill over to more "mainstream" languages (e.g. the advent of functional programming constructs we are witnessing in Java, JS etc.).

Other than that, I also believe that more and more DSLs will start appearing, which is basically languages specialised for a specific purpose - which will make them extra convenient in their domain but not usable in the general case. Also, I expect the tooling (IDEs, build systems) to become more tightly integrated with the language, especially for the DSLs - creating the end product which at the end will be usable not only by the programming experts.

I have actually, together with my brother, been working on such an idea for the past year. We made a DSL for the domain of web apps - it is basically a declarative language that compiles to the stack of choice implemented in the general language (e.g. React/Node). This makes it possible to express some web-app specific concepts with much less code, but is also constrained to that specific domain.

If anybody wants to take a look it is here: https://github.com/wasp-lang/wasp

Would be interesting to see the results of your research and what majority thinks are the ideal language features.

matijash··on Ask HN: Help me like modern web development
As many others below, I can also say I sympathise and often feel the same. As you said, everything feels super fragile and held together with only duct tape.

Why is it so? I believe because everything started switching to web lately so it gained a lot of focus. Being open-source in nature it attracted a lot of new ideas and this is what lead us to the influx of new frameworks we have today.

It is a good thing because innovation->improvement, but also a bad thing because a huge mess and choice paralysis :D. I also feel overwhelmed with all the transpiler and compilation steps, pretty much gave up on understanding everything.

How to hate it less? What @valand suggested below makes sense to me, by focusing less on the technology and its brokeness, but rather on the product, best practices and the end-goal. Also, even if the build system is a mess we can still write clean, high-quality and tested code which can be reused. This is what we did, propagated this culture through the team and that helped me hate things less. We were reading engineering books, having clean code dojos, best practice presentations etc. My takeaway from that was choose your victories when you can have them and enjoy them.

Another approach would be to join the madness by creating your own solution - which is what I also did. I know it is a https://xkcd.com/927/ case, but it was too fun and interesting so I couldn't help it :)

We basically built a DSL that compiles to the underlying stack of choice. If somebody wants to give it a look it is here: https://github.com/wasp-lang/wasp

Good luck and hope you find peace with whatever you choose!

matijash··on Ask HN: Help me like modern web development
Could you possibly share more details on this? Would also love to avoid the pitfall is possible. Thank you
matijash··on Ask HN: Would learning category theory be useful in my programming career?
I suppose you learned about category theory through Haskell? I did, and I was wondering the same question as you. After doing some investigation and looking what others say, it turned out that "real" category theory is only loosely related to Haskell, and isn't necessary to understand it to work in Haskell. I then didn't go deeper down that rabbit hole :D.

But, from my experience, already learning Haskell would improve ones programming skills, especially if you haven't been exposed to the functional programming before. It is really a mind-changer and equips you with new perspectives which you can use in other programming languages as well.

So I would definitely recommend investigating Haskell, and maybe after some time you can then also go into the actual Category Theory and see how it connects to your Haskell knowledge.

matijash··on Wildcard: Spreadsheet-Driven Customization of Web Applications
I like the demos a lot, it is easy to understand the idea from them! How hard was it to write the browser extension and how well does it work for the different sites?

Obviously the main challenge, as other mentioned, is that not all of the data is present on the frontend. Also, user cannot permanently change the app, since just the DOM is changed and that is not persisted anywhere, am I right?

But the whole idea to be able to peek "under the hood" of an app and customise/edit it sounds very appealing to me! I am actually working on the open source project that has that aim, to "understand" the web app from within.

But of course for that we had to go with a bottom-up approach, so we are building a DSL for describing how a web app behaves: https://github.com/wasp-lang/wasp

Would be happy to hear your thoughts on it!

matijash··on Mental Models for Founders
Nice list! I would say it does not apply only to founders, but actually to everybody :)
matijash··on Ask HN: Modern framework to create forms and store its results
Once you store the survey results, what happens next? If you just used typeform (https://www.typeform.com/) (they have a really nice UX), what would you be missing?
matijash··on Ask HN: Is it ok to repost my “failed” Show HN?
What would be considered a significant attention? E.g. I had 20 votes and a few comments, is that a lot?
matijash··on Ask HN: What are day to day “problems” that have verified solutions?
I was thinking about this one for a long time. Finally I got one (at least I think so): If you (like me) like to buy the bread in advance and freeze it for later use, make sure to slice it up first. Otherwise you have to unfreeze the whole bread, slice it, and then freeze it back.

Doesn't sound as cool when I read it now as it was in my head :D.

matijash··on Ask HN: Non-SaaS jobs for overly anxious devs?
I see how working on a SaaS can be exhausting, I have experienced it myself multiple times. Even if the SaaS had no users yet, there was a pressure from the founders to get a lot features quickly etc. Although on the other hand, it depends a lot on the company itself and its founders. I know a SaaS where founders are hard-core & experienced engineers themselves, and they understand and work with their team much better, because they know what they can expect.

From my (limited) perspective and experience, "deeper" you go (closer to the research, or put in simpler words, less people understand what you do :D), less direct outside pressure is put on you. Which is kinda logical, often when non-dev people can visualise the end result (and believe they understand it) they get impatient and cannot understand "why does it take so long to get it done".

So I would say these might be the important factors: 1) Founders coming from the engineering/scientific background 2) More hard-tech work domain (e.g. crypto, AI/ML (although a lot of fakeness here), system performance, compilers, ...) 3) Bigger company/institution that can afford to work on such problems

matijash··on Ask HN: What is your remote working office setup?
Go for a clicky mechanical keyboard (e.g. blue switches), now you can finally click all you want without distracting anybody (but yourself :D).
matijash··on Ask HN: Do you feel comfortable learning new technology at work?
If the technology is something that could be useful to the company, then I would talk to the team & superiors and discuss with them whether we have time for that and how important it could be. In the case they agreed, and I gave them an explanation for why and what I am doing (and how long is it approx. going to take), then I would feel comfortable learning new technology at work. I believe good communication is the key here.
matijash··on Ask HN: How do you learn Web Dev?
Web development can be done on many levels (e.g. just frontend or backend or styling/layout) with different technologies (libraries such as React, frameworks such as Angular, ...).

So the first problem is to learn what to learn. When I was trying to teach my gf to code (she is also non-engineer) it was actually pretty overwhelming for me, because I needed first to give her a lot of what-is-what knowledge. E.g. how internet roughly works, what is server, what is client, what is db, etc.

At the end I bought some Udemy full-stack web development course for ~ $9.99, they are always on some kind of sale. That worked pretty well (although she didn't get very far, I have to push her again :D), because they explained everything from scratch so you can acquire that initial what-is-what understanding.

So I would advise you to first acquire that general kind of knowledge, understand the basic parts of web (development) and then dive into the specific technologies - you will have much better context of what are you doing and how it fits in the bigger picture.

I believe any course with a decent amount of stars/reviews would do well. Feel free to ask more here.

Hope this helps!

matijash··on Ask HN: Low Code tools like Webflow, what's my role in the future?
I believe there will always be place for coding, even for HTML/CSS.

The more common problems that are recognised as "patterns" are going to be handled by the specialised tools (such as Webflow which you mentioned), but there is always going to be the next level of complexity which has not been tamed yet.

This is how I see the innovation cycle: New tech that makes X easier comes out. People use it and do things they couldn't do before - but then the patterns emerge, people often do Y but since this tech is general it takes a lot of work to achieve it. Then the new product comes which makes Y easier.

HTML and CSS (especially advanced preprocessors such as Sass /Less) will always be more expressive than some visual tool, and some things will be really hard/clumsy without them. Of course, the question is in what volume will such "harder" problems be there in the future.

What to learn? HTML/CSS/JS are still very much used, but more and more within the different frameworks/tools. So maybe it wouldn't be bad to learn e.g. React. Just focusing solely on the HTML or CSS itself, I am not sure how beneficial is it to have e.g. 80% mastery vs 99% mastery. What kind of projects would require and adequately appreciate such knowledge?

Btw, I am working on an open-source low-code solution - as opposed to Webflow and others, we still very much rely on the code, just try to abstract away the common patterns and let developer focus on the unique product logic.

In our vision of the future the coding is going to stay, it will just become more and more integrated within the tools which will take away the "setup" complexity. So more and more people will be able participate in the development, even coding, while having the "safety net" of the underlying tool.

This is our repo, would be happy to get your feedback! https://github.com/wasp-lang/wasp

matijash··on Ask HN: Idea already implemented by others. How to differentiate?
I can't give specific advice without knowing more about the idea, so I'll keep it general.

I think pretty much whatever you do, if you do it long enough, at some point you are going to discover there is a competition. It is a validation that your idea makes sense.

In your case you discovered it early, even before you started. But does that really matter? What would your decision be if you have been working on the project for 1, 3 or 6 months and then discovered it? I would ask myself that question in your situation.

If somebody had the same product idea, it is not like they "own" it now and you are not an original anymore. If your intrinsic motivation for doing it is strong enough and you want to do it long-term, it shouldn't really matter. Of course, I am assuming here your competitor is also in the early stage and has not overtaken 90% of the market.

You don't even have to differentiate in the beginning - why would you? You can both offer the same service - there are Pepsi and Coke, Intercom and Drift and they basically offer the same service.

As the time progresses, it is likely both of you will differentiate more and more, and orient toward a specific niche of the customers.

You even have an advantage coming in the second - you can learn from the existing solution and make it better.

So alltogether, I would say that the main question is whether this is something you personally want to do long-term or not, whether you have the internal motivation for it. If it was just a "quick" idea you had and the main motivation was to make a quick buck, then probably not. But if this is something you are interested in and want to keep doing it, then why not.

matijash··on Ask HN: What steps to take to rebuild an existing application?
Thank you very much for your feedback PaulHoule! Feedback like this motivates us to keep going :)
matijash··on Ask HN: Lost in Life and at Work, Help?
Here's advice from another almost 30 years old engineer :). So I might not have more experience, but here is how I think about things, maybe it helps.

I think the most important question is: What interests you? And I believe the answer should be more general than a specific technology such as AWS or GCP.

You said you would like to grow as an engineer. There are typically 2 directions - going more into managerial/leadership roles (e.g. staff engineer) or being more of an individual contributor (no management, only engineering). Good book on this - Radical Candor. It is also totally ok to switch between these roles.

About being afraid - what do you have to lose? With engineers being in such a high demand you definitely won't end up jobless. If you are thinking about doing it and are not happy with your current company, I'd say do it and fail as many times as needed until you get where you want to.

Another good way to learn and build a portfolio is doing a side project. You can then open-source it, write a blog post on it and sort of become an "expert" on that topic.

Regarding your wife and family, probably the best thing IMO would be to talk to them - explain them your position, ask for support and agree with them how it is going to work.

When I don't know what to do, what typically helps me is to take action. Any action. Once I start doing things, things start to unravel and become clearer very quickly.

Hope this helps!

matijash··on Ask HN: Is there codegen framework for business logic?
Thank you very much! That definitely sounds like the good use case. If you'd like to support us feel free to star our repo at https://github.com/wasp-lang/wasp, that is currently the best way for us to show that other people are excited about Wasp too :).
matijash··on Ask HN: How to get started with DSLs and meta-programming?
You might want to take a look at Haskell (Template Haskell) or Lisp/Clojure macro system. I haven't used Lisp yet, but I am working in Haskell currently. Here is a presentation that illustrates code generation in Haskell well, although it requires some Haskell knowledge: https://www.slideshare.net/kizzx2/template-haskell-tutorial

Haskell is also a good choice for writing DSLs and embedded DSLs.

Do you have a specific problem you would like to solve?

matijash··on Ask HN: I have been asked to write a statement about my low GPA by Google
I imagine the best thing would be to just be honest? You obviously passed the interviews and thus are qualified enough. Maybe the coursework wasn't very engaging or a lot of "empty work" was required and you decided to focus on side-projects instead of chasing the high GPA. Or you decided to work on the side? Whatever it is, I believe the explanation would make sense.
← PreviousPage 5 of 6Next →