Earlier quoted context omitted.
to me lisp is its own problem, its value is that it gives you too much it becomes anti social. Society likes ignorance and delegation, lisps gives you the ability to have everything into one atom and mold it as you need it. But that's only useful for 1) people with that kind of mindset 2) hard problems that fall off mainstream/commercial support
Like Autolisp? Autocad (and its clones) of software used by zillions of designer, architects, ... extened by zillions of Lisp programs.
From Rails to Clojure, Then to Java, Then Back to Rails
131–140 of 157 posts
Re: From Rails to Clojure, Then to Java, Then Back to Rails
#132Another thing I’m getting is that the new kids won’t like rails, and it’s being harder to hire. I'm surprised by this, to me the language used would be a long way down the list when evaluating an employer.
Ruby is still a beautiful language, particularly for its object oriented-ness. And I think Ruby's nature, simplicity and power appeals to young people, however the resurgence of a towering Javascript/NodeJS is hard compete with. These are market forces that really matter when you're wondering what language & platform to use for your MVP. In recent surveys, Ruby & Rails has fallen to the bottom of the list among the f…
Re: From Rails to Clojure, Then to Java, Then Back to Rails
#133Earlier quoted context omitted.
It's because we don't like or approve of rails. It doesn't make business sense to us (us being a completely anecdotal group of young developers I'm friends with). There are other solutions that provide sufficiently more developer speed and safety, while also providing much better performance than any rails application. Edit: I guess I just hang out with like minded people, but our biases shouldn't negate the fact tha…
To answer many of the replies: (Most prominent -> least prominent) Web-related: Go, Elixir, JavaScript, Python Desktop GUI: Python, C++ Game-Dev: C#, C++ Really its a matter of how much you'll pay us, and I think we've been scarred by too many bloated Rails apps and Wordpress sites to want to work on those.
Re: From Rails to Clojure, Then to Java, Then Back to Rails
#134Earlier quoted context omitted.
> Community feels like the good old Ruby days, but better I really miss that old Ruby community. It was full of that hacker spirit, everyone trying stuff, no one to crush your creativity. Then the startup hipsters took over and came up with good practices, style guides, gems you absolutely had to know to get hired, etc. It drove me away from Ruby, actually. It just wasn't fun anymore. I hope it doesn't happen with Ru…
Your comment really speaks to me. I'm in the process of transitioning my career out of development altogether for the reason you mentioned getting out of Ruby. It just isn't fun anymore. I haven't been able to find a company with a good hacker-spirit since 2010. I like programming, and will probably continue with languages like Elixir and Haskell, but as far as the day-to-day work goes, I'm done.
Re: From Rails to Clojure, Then to Java, Then Back to Rails
#135I may sounds weird but Ruby is what make me look more into functional programming. I get done a lot with Ruby due to all method it has on Array/Object/Enumerable. The beauty of `&` is awesome and I discover that Elixir/Clojure has that and bring it to next level. I think Ruby has inspired many other language to take that path too. One of the thing about Ruby is that it optimize for happiness, which sound weird. But I…
*> 10.seconds.from_now* I don't understand this kind of weird "urban sprawl OOP" where classes are extended with anything. Why is 'seconds' a method on numbers? Is there also a 'pixels' method so that I could draw a line like this: 10.pixels.from.top_left_corner.to.southeast.using.red.stroke If this doesn't seem like a sensible way of programming graphics, why does the 10.seconds thing get a pass?
10.seconds.from_now
is beautiful to me.
Let's do a quick google for "Fluent API in Java" and you will get something like this:
Invoice inv = Invoice.builder() .createdOn(new Date()) .withDocumentNumber("5150") .shippingOnTrailer("2112") .suppliedBy(InvoiceActor.builder() .named("101") .as(InvoiceActorType.DC) .build()) .beingSentTo(InvoiceActor.builder() .named("42") .as(InvoiceActorType.STORE) .build()) .with(InvoiceItem.builder() .as("TK421") .orderedQuantity(10) .shippedQuantity(8) .build()) .with(InvoiceItem.builder() .as("FN2187") .orderedQuantity(5) .shippedQuantity(5) .build()) .build();
The only difference here is that Ruby allow you to attach method to anything.
But then you have category in Objective C, extension in Swift/Kotlin.
The language gives you the tool, to make your job easier, that's why I wrote "I feel happy when writing Ruby" because I have that power.
To even protected you from changing everything, you can also use refinement to scope this, though it seems underestimated currently IMHO.
When using it the right way, it helps everyone write readable code.
Back to your example:
> 10.pixels.from.top_left_corner.to.southeast.using.red.stroke
It's up to your however you want to design it.
Re: From Rails to Clojure, Then to Java, Then Back to Rails
#136Earlier quoted context omitted.
*> 10.seconds.from_now* I don't understand this kind of weird "urban sprawl OOP" where classes are extended with anything. Why is 'seconds' a method on numbers? Is there also a 'pixels' method so that I could draw a line like this: 10.pixels.from.top_left_corner.to.southeast.using.red.stroke If this doesn't seem like a sensible way of programming graphics, why does the 10.seconds thing get a pass?
It's not just 'anything' that objects are extended with in Ruby, they are extended with suitable methods pertaining to the domain at hand. 'seconds' is a conversion method of one type into another. You might as well ask why do objects have a 'toString' method. Because it is convenient.
Re: From Rails to Clojure, Then to Java, Then Back to Rails
#137I may sounds weird but Ruby is what make me look more into functional programming. I get done a lot with Ruby due to all method it has on Array/Object/Enumerable. The beauty of `&` is awesome and I discover that Elixir/Clojure has that and bring it to next level. I think Ruby has inspired many other language to take that path too. One of the thing about Ruby is that it optimize for happiness, which sound weird. But I…
It looks nice, but then again: irb(main):002:0> 10.methods.count => 133 Oh well...
Re: From Rails to Clojure, Then to Java, Then Back to Rails
#138Earlier quoted context omitted.
I've always had better luck restricting FP to using things like map, reduce, filter, (etc) inside methods as an implementation detail, but having the structure of the app use OOP.
Incidently that is how FP in done in Smalltalk as well. All those methods, and reactive patterns (Observer and such) were already present in Smalltalk-80.
Re: From Rails to Clojure, Then to Java, Then Back to Rails
#139Earlier quoted context omitted.
Yes - Ruby makes it easy. I'm run into the downside, though, that Ruby isn't optimized for immutable operations - tons of object instances created. I've needed to 'pythonize' my Ruby code in the worst cases - using mutable functions to dramatically reduce memory usage.
Can you say more about this Pythonisation process? How is Python any better at immutable operations? Ruby and Python are both OO languages which can be used in a procedural style. Hell, you can write a whole app in Ruby without creating a single class if you so choose.
Re: From Rails to Clojure, Then to Java, Then Back to Rails
#140Earlier quoted context omitted.
*> 10.seconds.from_now* I don't understand this kind of weird "urban sprawl OOP" where classes are extended with anything. Why is 'seconds' a method on numbers? Is there also a 'pixels' method so that I could draw a line like this: 10.pixels.from.top_left_corner.to.southeast.using.red.stroke If this doesn't seem like a sensible way of programming graphics, why does the 10.seconds thing get a pass?
It's not just 'anything' that objects are extended with in Ruby, they are extended with suitable methods pertaining to the domain at hand. 'seconds' is a conversion method of one type into another. You might as well ask why do objects have a 'toString' method. Because it is convenient.
But this is what drives me up the wall with the Ruby ecosystem: seems that whenever API designers had the choice between consistency and fun gimmick, they chose the latter. It makes some people feel happy, but often makes the next person who has to read and maintain the code miserable.