Hacker News new | past | comments | ask | show | jobs | submit login
No Code (vas3k.com)
132 points by severine on June 14, 2020 | hide | past | favorite | 59 comments



The second sentence ("First, you work all month, and then you give half of the money to those who didn't work.") is already so blatantly wrong and reactionary that I almost have to force myself to read on - after all, if the premise is already flawed what good can come of it?


Seriously.. it wouldn't be such an aggravating statement if people didn't actually believe it. (To state the obvious, the idea of the taxes is that the money is used to pay for the roads to get you to work, for the education that provides you and your employees the skills to work, and for all the other things that allow society to function so you can work. Yes, including helping people who are looking for work, so that the economy in which you work can function. It's not altruism - you're paying for the system which supports your job existing in the first place.)


And, in Berlin, pays for health care.


That is a story that is told, and when you dig deeper, it is a very poor match to reality.

I recommend James C. Scott as relevant reading.


I'm assuming you didn't actually force yourself to read on:

> Disclaimer #2: My stupid jokes in this post are not intended to insult someone or impose any radical opinions. They're here for a better connection with reality through an ironic reflection of it. Because the stupidest things in the World are always done with a serious face. And yeah, I know how taxes work and I always pay for apps, even the shitty ones. But that doesn't stop me from whining about it.


"It's a prank!"


Yeah, I mean clearly half of the money is going to RENT.

;)


If that had been the joke it would have actually worked.

> First, you work all month, and then you give half of the money to those who didn't. It's called RENT.


It's obviously supposed to be humorous. Whether you like the joke or think it's dumb, the article isn't premised on it being true.


Jokes with false premises always struck me as bad humor. It's like Jerry Seinfeld getting up there and being like "the problem with coffee is that there's always just a litttttle hint of banana flavor. No matter what you do! Always the banana! I mean, is the guy making my coffee some sort of orangutan??"


Irreverent humour is often premised on not being literally true. You may not like that people find it amusing, but many certainly do. That Seinfeld example is a totally different type of humour.


The entire article is full of this kind of humor; you like it or you do not.


It's a little hyperbole but in principle it's true, especially in Germany. Of course you can like the concept of redistribution of income and wealth, but that doesn't makes it "blatantly wrong and reactionary".


I've gotten sucked into this in the form of MS Power Automate, and it just seems to make everything more complicated and confusing. I spend most of my time looking for workarounds to try to get back the ability to do stuff that any programming language allows. I only learned Access and VBA about a year ago, but I tend to agree with the people who say Microsoft has broken up parts of the functionality of this reasonably useful workhorse into various products, all with their own learning curve and without caring much about covering all that you could previously do.

I'm beginning to think it's just a scam, where Microsoft and others sell a vision to people who can't judge it because they don't know what programming is...and the point is to have an incredibly convoluted and random licensing system where every little thing requires paying more money. It feels as calculated and predatory as a casino.

What "no code" boils down to, it appears to me thus far, is you don't have the version control, the refactoring ability, the ability to reuse code, the ability to see a reasonable amount of logic at once, the ability to easily copy and paste, the security of an editor that won't randomly mangle your code (sorry, it isn't code, it's...uh...JSON) it's just on and on, things you can't do, and nothing added in exchange except the label of "no code". And I don't see how anything complex can be maintained; it merely has the political advantage that you don't have to designate a developer to maintain it...but in reality, it's if anything harder to understand.


From how I understand it, the idea behind Power Automate isn't to move programmers over to it. It's to allow other people in the business to automate their workflows without bringing in developers. No/low code systems are great for departments such as accounting and finance, they typically have some tasks that are great targets for automation, and the workers know more about the process than the developers. If the workers can create the automation without bringing in developers it can save quite a bit of resources over time. These people are also not all that keen on actually learning programming languages, source control, version control, and all of that. They just have a problem in their day-to-day work they'd like to solve.

If you want the "developer experience" (source control, some code, etc.) while also having access to the flow-based editor you should look into Azure logic apps instead.


This makes me feel like there's a good niche for "developer-friendly no-code". I'm a developer and I don't like no-code solutions for all the things you mention. These current tools try to abstract a lot but it ends up becoming severely limited and hard to debug/extend. They might be okay for things like internal business tools, which is what most of them seem to be targeting. On the other hand, I've been playing with Hasura recently. As a full-stack developer, it's amazing. It gets rid of tons of boilerplate for back end dev, and I can focus on building features rather than CRUD plumbing. It's easily extensible using serverless functions. It feels like it's helpful to me more than trying to replace what I do.


What "no code" is really about is "no figuring out the toolchain, deployment, integration with third parties, etc". For actually writing business logic, replacing code with drag and drop logic blocks is... not really helpful to anybody. But with all the crap that programmers actually spend our days dealing with removed from the picture, anybody can write their own business logic, even if they have to do it in gasp code.


> is "no figuring out the toolchain, deployment, integration with third parties, etc".

Yep and programmers are terrible at delivering that: I do believe a lot of people like setting up their environments, running updates and fixing their code while nothing in the business logic was changed. I find it by far the most annoying part of modern programming; I want to build a product that adds to the bottomline; not figure out whatever I need to set up to get that done. After the set up, we do not need drag and drop or whatever; just code is fine, but can we just please skip any and all of the setup by default (you can change it if you require ofcourse!), while it being ready and secure for production, by default? That is what these no code tools do well: I can just start making datamodels, business logic and connections instead of worrying what crucial npm updates will break my code today.

Edit: Also when I run the npm i module no code equivalent (pressing add plugin/module or something), it will immediately work; no 90 page setup document of ‘integrating’ things in my application. Sure the flexibility!!! But why are we (me included) so incredibly bad a sane and ‘just works after install’ defaults? I still think, as said above, that people must like this busywork, otherwise you would expect more complaining?

I do know many freelancers (paid per hr) and many people under contract indeed like that work: it is a nice distraction from thinking about logic and it takes time (a lot of time sometimes), but I cannot believe people really would prefer it over taking a walk outside instead?


> For actually writing business logic, replacing code with drag and drop logic blocks is... not really helpful to anybody

It's not helpful for anybody to be able to write their own services, even if they cannot code? Everyone who can't code, would disagree with you. Sure, they can spend some free time to pickup programming, and maybe after a lot of reading and practicing, would be able to build the flow in a programming language, but why do that when you could just drag and drop logic blocks until it solves your particular problem, then move on to what you really care about?


Because drag and dropping blocks is the same difficulty as writing it down just with more steps.

The difficulty isn't in writing the code, but specifying exactly what you want to do.


Yeah, I mean, you're right, it is difficult to specifically know what you want the computer/server to do.

But, writing code (as text) is a lot harder for people to do, than to use graphical elements. Why I don't know, maybe it's just more daunting to get started. But people have an easier time pickup "programming" via blocks rather than text.


In my experience that's not actually true. People might be able to drop some graphical elements into place, but they can't fix bugs in their "programs".


Eventually, there's almost always a need for some edge case, some scenario not quite covered by the no-code framework, and you're back to writing code, even if it's sold as not actually coding.


I'd agree that of course "real" programming is gonna be able to cover a lot more cases than "building blocks" programming can ever cover. A bit like comparing only using libraries vs writing your own code, can get you far but will never allow you to do anything.

> and you're back to writing code

My point was more geared towards the people who can't write code. So this is not really an alternative for them. So something imperfect that kind of does what you need, in most cases, is most of the times better than nothing.

I don't think anyone is selling "no code" as a solution that works for everything and any case. But it does work for a lot, so us "real" programmers can stop implementing the same boilerplate over and over, and people who can't program, can build automated workflows for themselves, which is nice.


It's a nice dream, I'm not opposed to it in principle.

However the systems I've seen from vendors pushing (for instance) "no code" data permissions rules on top of an identity database, have quickly shown their rough edges and the need for custom building blocks backed by code (or worse, XML pretending not to be code!). Maybe it's getting better than this now.


> For actually writing business logic, replacing code with drag and drop logic blocks is... not really helpful to anybody.

It occurred to me once that for the typical front end dev, there are 4 data types being dealt with, disregarding individual chars which don't have a whole lot of use on the internet at large. Now, someone who is using a framework of a framework is going through AT LEAST 4 translations. High level framework -> low level framework -> javascript -> machine code via the runtime.

4 data types, 4 languages. Just in the UI, not even talking about the server and the database.

Perhaps the trend is a reaction to poor language and framework design...


It's not "no code" it's "code later". It doesn't prevent the effort of coding the solution, just moves it down the line and makes it harder.

The good part is that (as the article) says, you only need to write the code when you know the code will be used.

The bad part is that the no-code solution will break at some point. Usually because some part of the chain introduced a breaking change, or the process its modelling needs to change in a way that the solution can't handle. Then you need to replace the no-code with actual code, while under time pressure because the business is broken waiting for the new solution.

He's right - this is a useful tool, and sitting in the middle is the best place. But there are lots of people who will read this and create something completely with no-code and with no intention of replacing it with code, until it breaks and then they're in a painful place.


> It doesn't prevent the effort of coding the solution, just moves it down the line and makes it harder.

What is harder about using a OCR app and calling the Airtable API to get the expenses compared to writing all the code to take photos, scan for text, and then upload to Airtable or even a SQL DB?


The harder part is that when you have to write the code, it's because your existing business relies on it, and you have interfaces defined by other systems.

So, to take the example: you set up the expenses handling with no code, it's easy, all good. Then halfway through next year, the OCR app starts charging $1 per scan (as a hypothetical). Now you have to write some code. But your accountant is waiting for your receipts, so you have a deadline for the coding. And your code has to use the Airtable API, because that's where the rest of your process takes off. That API might be a lot harder to use than, say, SQLite, which would be your choice if you were coding the system from scratch.

So the code you have to write has constraints from the rest of the process that still works, and a deadline. So it's harder to write.

That's what I meant by "makes it harder".


Some workflow never get to the point you need to replace them, in which case using a no-code solution is a huge win.

Often, it is good enough, when the no-code solution has some flaws, but not enough to justify a rewrite.

And some workflows utterly needs to be rewritten, because of various reasons (change in pricing of the provider, new feature that's not possible in no-code, bug in the no-code solution, scaling issue).


> But there are lots of people who sell no-code as a solution that can completely replace code.

And a lot of people are buying in in hilariously bad ways.


I haven’t been following the no-code “movement”, but it seems to me that this is really a revolt against abusive software development practices justified by UI/UX and of course data lock-in. It seems that people really want editable, transparent, and composable pipelines for common tasks. This is the GNU philosophy for the command line.

Little story: I did a lot of work with Army grunts trying to avoid getting blown up. The main tool was excel. Software shops kept delivering junk that nobody used. The acquisitions guys loved a slick demo and that’s pretty much all it did. They’d come in and install a new server cluster, which means a bigger server room, which means more cooling, which means a bigger generator, which means more diesel trucks, which means more convoys on the road, which means more getting blown up. New grunts would tool around on it for a month and then get a novel task they had to use excel for, and never go back. The acq guys had such disdain for the ‘users’ that they couldn’t imagine that they actually knew WTF they were doing. The slick demo went on to win the DCGS contract, and now they’re stuck with ‘easy’ where they need flexible, customizable, fast, simple (all the way down the stack).

So yeah, now I get it. It’s more like, no-UI than no-code.


I would say people want to get rid off developers. The way it usually works is that somebody has an idea useful for humans, but they don't speak code. They then need somebody who knows bits and bytes, but unfortunately probably does not understand the actual idea or its purpose. So what ensues is the developer trying to make a stupid machine do something that somebody else envisioned, as a sort of idea to code compiler. This is not always true -- especially for startups -- but it is I think for the no code part. Now if the developer could concentrate on giving the tools where his expertise is relevant to the people with ideas everything would be amazing. If it can work.


Asking people what they want is an underrated skill.


From Not Invented Here to Exclusively External Dependencies.

Took me down a fun rabbit hole of German tax deductions for expenses - especially the fact that you can deduct a few thousand euros without evidence:

https://www.thelocal.de/20180509/german-tax-return-know-your...


In Portugal we just give our NIF (fiscal number - VAT Number) every time you buy something. All invoices will have your NIF. And all invoices are communicated to the government by the software that make your invoice. All invoicing software need to me certified by the government. This is mandatory. When you need to make your taxes they are already filled in. And business can't avoid taxes because they are communicated to the government.


Soooooo, the author moved away from waveapps because the system did no allow him to link multiple pictures to 1 receipt. So he started implementing his own no-code solution which... also doesn't allow him to link multiple pictures to 1 receipt...


So they at least wrote an article about it to salvage the time spent.


I am trying to read this article, but it has a lot of money bumps..


What do you do when Integromat shuts down?


Same can be said about most cloud platforms that programmers would store their code. "What if Google Cloud shuts down", "What if service X changes their API", "What if your CI/CD provider makes a breaking change in their YAML syntax".

This happens, it sucks, but it's not a reason to not host on cloud, use an API, or deploy with a CI/CD. Outsourcing is a calculated risk.


The difference is that Integromat is less fungible than, say, GitHub. If GitHub were to shut down, I could move to GitLab or my own Gitea instance, and it would be a fairly easy adjustment (mostly just changing the domain name everywhere). If Integromat shuts down, you have to completely rebuild your workflow on a competitor's platform because they're not based on a common protocol.


Is "Scanner Pro" good enough to be able to:

- take a photo of a supermarket receipt and OCR all the items

- get that at least 95% correct

- output that in a document with correct horizontal grouping?

If not, can someone recommend me an Android app for this?


vas3k is a wonderful blogger, glad his page made it to HN. He has technical stories on the site, but it's non-technical ones which I consider real gifts to his readers.


For me the worst part is that I can use a keyboard to write code but only use a single pointer from my mouse to move stuff. It’s so much slower


I saw no-code and poor eyesight picked out what looked like an amateur 2x2 callsign so I thought this was about licensing and morse code.

Cool workflow he has developed. It seems taxes are too crazy everywhere.


What does the auto segmentation and ocr?


Scanner Pro does the OCR - and it was implied (due to the need for the correct name) that the categorisation is a mapping from the name used for the scanned OCRed file.

That is my take from it. I could be wrong.


Wow. That seems like a lot of work.

I just use GnuCash, a scanner, some good old Samba file-hosting on a local Debian server running 24/7, and WOL and VNC (or just SSH and SCP) if I need to access anything from not at home.


It is me or “no code” is just “Unix way” of cloud world?


if Unix utilities could do a thousand different things instead of just one - then yes :)


Well, I mean there are cloud services that serve one function, like sending emails (MailChimp) or storing files (Dropbox) and then you glue them together with IFTTT. Analogy of Unix utilities and shell scripting comes into mind by itself.


"First, you work all month, and then you give half of the money to those who couldn't work."

fixed the wording for you.


It sounds like Taxes in Berlin are extremely effective. In the US my Taxes seem to just vanish.


The biggest chunk of those taxes are mandatory government insurance programs. The government may or may not be running them poorly but you can definitively say that the money is being used for a specific purpose.


He said:

> those who didn't work

He didn't say "those who wouldn't work".

People that receive money from government programs include the disabled, aged, carers, students, those seeking work who can work, and those not seeking work who can work.


This reminds me of https://xkcd.com/1425/


TL;DR: He relies on 3 different online services to scan business receipts and track expenses. None are needed.

He spends hours (days) trying to automate what he himself claims is only a few expenses per month (and shows a photo of a very thin folder of receipts).

I can’t imagine his business will be ever very successful. He wastes too much time toying with simple things.

But aside from that, if one wants a “no code” solution to tracking expenses, along with imaged receipts in case later proof is needed here you go:

1. Take pic of receipt. If you need multiple pics per image, you can combine images post de facto via something like Apple’s Preview app (save as PDF), or you can use Apple Notes to do for you. I assume other competing platforms have similar options. Worst case scenario: simply add “page-2”, “page-3”, in the file name.

2. Save image file in a directory called “business-receipts”.

3. Name file with receipt date, vendor, amount, and maybe description or anything else. Date comes first for easy finding later. “2020-06-15 ATT 63-00 USD Monthly business cell bill.pdf”

4. Enter transaction into appropriate tab of business finances spreadsheet (cash, bank, credit card, etc.)

5. Add a category for the expense, if you want.

6. Get back to work.

Benefits?

1. No code necessary (unless you count your initial spreadsheet setup and the use of VLOOKUP for reporting). Call me crazy but if you’ve been going through all the gyrations outlined in the article, I assume you’ve mastered VLOOKUP or can do so in 10 minutes and that you’ve also graduated Junior High school.

2. No trusting OCR “auto-populate”. Most of us can type faster than these things can think. Also, if you trust those (without verifying each time), I have some perfectly safe driverless cars to sell you.

3. Almost no technical debt. No API depreciation. No risk of anyone being bought out.

4. Offline. Works without the internet. As did most all business processes 25 years ago on PCs. Amazing. No clunky browser needed either.

5. Secure. Your data is kept Local First. If you choose to backup online, so be it. Encrypt and Backup. But all your prior processing between multiple “services” (with your unencrypted data being manipulated on their ends) is no longer necessary.

Counter-Arguments:

1. Excel is now also a “service”: True but it’s more popular and has more staying power than any of the ones you’re using. If you really think you don’t want to pay monthly for Excel (not sure what business can avoid this), there are plenty of free options. And for the purposes of this method, at least, you could do this on Excel 97 (buy once, use ‘forever’).

2. Still have to deal with online storage: Well, no you don’t, but let’s pretend that you only trust hard drives in the cloud and not the $100 4Tb one you can get at Walmart. So what? Encrypt and send it on up. If you use Macs or Office365, you likely have plenty of room already. Why involve another third-party? But anyway, this is a part of the “no code” process you added as if it was unique only to that process. It’s a bigger part of a different decision on how you store, encrypt, and/or backup your business data. A single line CRON job would take care of this, unless you count that as “code” since it involves typing a line of text instead of 47 mouse clicks.

3. This isn’t multi-user: True. Based on the 2 receipts per month statement, and the thin Lemonade Stand folder of receipts, it didn’t seem worthy of that functionality. If multi-user is needed, and the free WaveApp is costing you sleep, Quickbooks is your solution. Welcome to the world of Big Boy Businesses where the owners work hard and underlings do data entry into complex software.


Hacker News needs a "Flag As 'This Is Going To Be The Next Dropbox Comment, Isn't It'" button




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: