Live data from Hacker News

Show HN: Desed – Debugger for Sed

github.com

11–20 of 23 posts

Re: Show HN: Desed – Debugger for Sed

#11
post #10
post #3

If you need a debugger from sed, aren't you now using the wrong tool for the job? We have lots of mature, debuggable languages to process text...

> We have lots of mature, debuggable languages to process text... You mean like sed? Sed was written in the 70s and has been in mission critical stuff for decades on many platforms. What are you recommending that is more mature than that?

Sed does not have a debugger that is 50 years old. The author was not saying that sed is a bad tool; he's saying it doesn't have a debugger. If there is a desire to have a debugger for the tool, that has existed for 50 years without having one, perhaps the tool is not being used in the way it has been used for the last 50 years. This would seem to make the argument that the tool has been tried and tested less relevant.

Re: Show HN: Desed – Debugger for Sed

#12
post #8

Earlier quoted context omitted.

I'll add technical section to readme, but for short. I've used tui-rs[1] with crossterm[2] backend (which handles the actual terminal interaction). The docs may seem intimidating, but it's surprisingly easy to use. I've considered using curses, but tui-rs seemed that it will be easier to handle. I can certainly recommend it for making tui applications. I didn't actually use any documentation at all, it wasn't in the…

OK thanks, that's helpful! It looks like a lot of the newer terminal rendering library use "diff" style of rendering like web frameworks, rather than something more stateful like curses? Is that why you thought it would be easier? You just update the entire page on every action, and it takes care of the details of coming up with the minimal terminal codes? ---- This is only tangentially related, but for those interes…

Yes, my priority was making the UI done as fast as possible, as I wanted to focus on making the debugger and didn't want to think too much about UI. I looked at some examples of both of them and decided that tui-rs looks easier to use, it takes care of everything for me. Note that I might be wrong, I didn't spend even half an hour looking at the frameworks.

Another reason, albeit really small, was that tui-rs was written specifically for rust, and curses framework I looked into were essentially just C bindings, making it a bit weird to use. To be fair, this disadvantage is by far outweighed by the fact that curses is far more popular than tui-rs, and there is so much more tutorials and documentation to be found about it.

But I wanted to focus on writing the debugger, so I went with what seemed to be more convenient option and paid the price of lower control and performance - for example I have troubles implementing syntax highlighting because tui-rs tries to be clever with mine ansi escape codes.

---

Thanks for the links, especially the ble.sh looks amazing.

Re: Show HN: Desed – Debugger for Sed

#13

Hi, author here. I’ve written a debugger for sed in Rust. This was not only to learn rust, but to actually have a solid debugger for sed. I’ve started learning sed recently and decided to start writing various algorithms in it. And as sed doesn’t have numbers and can just filter/transform text, this is a challenge even for something like comparing two numbers. I’ve seen people do amazing things with it. I’d be glad f…

Really cool stuff, I've been working on being able to debug sed scripts as well by translating it to pseudo readable C[1], compiling the result and then using gdb to step in the script, but this TUI is much more readable!

[1] https://github.com/lhoursquentin/sed-bin

Re: Show HN: Desed – Debugger for Sed

#15
post #10

Earlier quoted context omitted.

> We have lots of mature, debuggable languages to process text... You mean like sed? Sed was written in the 70s and has been in mission critical stuff for decades on many platforms. What are you recommending that is more mature than that?

Sed does not have a debugger that is 50 years old. The author was not saying that sed is a bad tool; he's saying it doesn't have a debugger. If there is a desire to have a debugger for the tool, that has existed for 50 years without having one, perhaps the tool is not being used in the way it has been used for the last 50 years. This would seem to make the argument that the tool has been tried and tested less relevan…

sd is 24 years old:

http://sed.sourceforge.net/grabbag/scripts/sd.sh.txt

Re: Show HN: Desed – Debugger for Sed

#16
post #10
post #3

If you need a debugger from sed, aren't you now using the wrong tool for the job? We have lots of mature, debuggable languages to process text...

> We have lots of mature, debuggable languages to process text... You mean like sed? Sed was written in the 70s and has been in mission critical stuff for decades on many platforms. What are you recommending that is more mature than that?

COBOL was written in the 60s and has been in mission critical stuff for decades. Neither of those factors means it's the right tool for the job now.

The things I'm recommending that are more mature are Go, Python, D, Rust, or any other language that is more verbose and maintainable than regular expressions. Anything with a full debugger, IDE support, and useful error messages is a better choice.

Re: Show HN: Desed – Debugger for Sed

#17

Hi, author here. I’ve written a debugger for sed in Rust. This was not only to learn rust, but to actually have a solid debugger for sed. I’ve started learning sed recently and decided to start writing various algorithms in it. And as sed doesn’t have numbers and can just filter/transform text, this is a challenge even for something like comparing two numbers. I’ve seen people do amazing things with it. I’d be glad f…

I like the tui UI, what was it like mapping it layout in the terminal? I've always wanted to try building a CLI interface like that.

Re: Show HN: Desed – Debugger for Sed

#18
post #17

Hi, author here. I’ve written a debugger for sed in Rust. This was not only to learn rust, but to actually have a solid debugger for sed. I’ve started learning sed recently and decided to start writing various algorithms in it. And as sed doesn’t have numbers and can just filter/transform text, this is a challenge even for something like comparing two numbers. I’ve seen people do amazing things with it. I’d be glad f…

I like the tui UI, what was it like mapping it layout in the terminal? I've always wanted to try building a CLI interface like that.

Surprisingly easy! I was scared of building TUI like this because it seemed so complex, but it's actually not that hard. Or at least, with tui-rs[1], which is surprisingly easy to pick up. Once you read two or three examples, you'll gain pretty good overview of how to build applications with it. I can definitely recommend it, it does all the heavy lifting and leaves surprisingly little for you to care about. Just don't forget to unset terminal raw mode before your application exits, or else you'll start breaking people's terminals :-)

[1]: https://github.com/fdehau/tui-rs

Re: Show HN: Desed – Debugger for Sed

#19
post #17

Hi, author here. I’ve written a debugger for sed in Rust. This was not only to learn rust, but to actually have a solid debugger for sed. I’ve started learning sed recently and decided to start writing various algorithms in it. And as sed doesn’t have numbers and can just filter/transform text, this is a challenge even for something like comparing two numbers. I’ve seen people do amazing things with it. I’d be glad f…

I like the tui UI, what was it like mapping it layout in the terminal? I've always wanted to try building a CLI interface like that.

A friend of mine built this, and I feel the need to promote it: https://github.com/dankamongmen/notcurses

There are Rust and C++ bindings, and it performs some truly ridiculous TUI tricks.

Re: Show HN: Desed – Debugger for Sed

#20
post #16
post #10

Earlier quoted context omitted.

> We have lots of mature, debuggable languages to process text... You mean like sed? Sed was written in the 70s and has been in mission critical stuff for decades on many platforms. What are you recommending that is more mature than that?

COBOL was written in the 60s and has been in mission critical stuff for decades. Neither of those factors means it's the right tool for the job now . The things I'm recommending that are more mature are Go, Python, D, Rust, or any other language that is more verbose and maintainable than regular expressions. Anything with a full debugger, IDE support, and useful error messages is a better choice.

Except COBOL often is the right answer for text processing now, meets all your criteria (debugger, IDE, maintainable, etc) and far more mature than Go, Python, Rust or D (really...D?).
Post reply on HN