Perl 6 - the future is here, just unevenly distributed

IRC log for #rosettacode, 2013-08-02

| Channels | #rosettacode index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:32 ttmrichter joined #rosettacode
00:52 sirdancealo2 joined #rosettacode
01:17 mwn3d joined #rosettacode
01:26 Kumool joined #rosettacode
01:53 sirdancealo2 joined #rosettacode
10:05 talib joined #rosettacode
10:48 rublets joined #rosettacode
10:50 RRR2 joined #rosettacode
10:54 RRR2_ joined #rosettacode
11:40 BenBE joined #rosettacode
11:56 RRR2 joined #rosettacode
12:12 RRR2_ joined #rosettacode
14:45 sirdancealot joined #rosettacode
15:10 bearophile joined #rosettacode
15:10 bearophile Hello
15:10 bearophile I have created a new very simple task:  http://rosettacode.org/wiki/Gen​erate_lower_case_ASCII_alphabet
15:10 fedaykin "Generate lower case ASCII alphabet - Rosetta Code" http://rldn.net/5qe
15:10 talib bearophile: neat
15:11 bearophile Why do you think it's neat? :-)
15:11 bearophile The point is to show reliable ways to do it, not to golf it
15:13 talib I enjoy scripting in python but it often feels like golfing it
15:13 talib is this a bad thing?
15:13 bearophile In Python you can write both golfed code and reliable well written code
15:13 bearophile You can do that in Perl, maybe
15:14 bearophile Python is dynamically typed, so its interpreter is not able to catch some possible errors
15:14 bearophile But writing everything in Ada is not handy :-)
15:14 bearophile So some intermediate solution is needed
15:14 talib bearophile: which programming languages do you use? I only just discovered Rosetta Code and I'm loving the challenge of trying the tasks
15:15 ttmrichter bearophile: Optionally-typed languages are the middle ground.
15:15 bearophile Haskell helps on this, but some things are not easy to learn/do in Haskell
15:15 bearophile ttmrichter: optionally typed languages probably will become more common
15:15 bearophile like TypedScheme, TypeScript and the 'dynamic' of C#
15:16 bearophile But today don't fully replace strongly typed language. We'll see in future.
15:16 bearophile talib: do you mean on Rosettacode or elsewhere?
15:16 ttmrichter Dylan could easily replace a strongly typed language.  It was one.
15:16 ttmrichter You just didn't need to use the type system.
15:16 ttmrichter You could prototype without it and then start tagging types both for error checking and for performance improvements.
15:17 bearophile I have seen that recently a Dylan compiler was released
15:17 ttmrichter A new version, yes.
15:17 bearophile I have never tried to program in Dylan so far.
15:17 ttmrichter It's a functional language that masquerades as an OOP one, but with an OOP model that would drive Java and C++ types nuts.  :)
15:17 bearophile talib: on Rosettacode I mostly program in D, Python, C and Haskell
15:18 bearophile ttmrichter: I am sure Dylan has several nice ideas
15:18 bearophile ttmrichter: But do you like why it has failed so much?
15:18 ttmrichter One of the nicest is proper separation of concerns.
15:18 bearophile ttmrichter: But do you know why it has failed so much?
15:18 eMBee ttmrichter: you may want to take a look at pike. it is typed, but one type is "mixed" which means it can be anything, and you can combine any type int|string for example to allow something to be int or string
15:19 bearophile eMBee: I have taken a look at pike. Its algebraic types are unusual indeed
15:19 ttmrichter eMBee: I use Mercury for that stuff.  Strongly typed, with inference inside predicates/functions, symbolic typing and has the "any" type.
15:19 bearophile eMBee: But I prefer Whiley types, then ;-) Or even Magpie library-implementd static typing
15:20 ttmrichter bearophile: Dylan failed because Apple dropped it and only Harlequin was left to support it.
15:20 bearophile ttmrichter: I see. Was enough people using it before it get dropped?
15:20 bearophile got
15:21 eMBee was dylan free software?
15:21 bearophile I don't thin so
15:21 bearophile think
15:21 ttmrichter There was a free offering and a commercial one.
15:21 ttmrichter The commercial one was Harlequin's.
15:21 bearophile I see
15:22 ttmrichter The free offering was called something like Gwyddion.
15:22 bearophile Gwydion Dylan
15:22 ttmrichter Dylan was supposed to be the apps and system language for Newton, but a few things conspired against that, followed by the Newton's utter flopping on the market.
15:23 ttmrichter Nowadays all Dylan implementations are F/OSSed.
15:23 bearophile And on the Next too?
15:23 ttmrichter No, not on the Next to my knowledge.
15:23 bearophile OK
15:23 ttmrichter But the most intriguing feature of Dylan to me is what made it unpopular with the C++ (and later Java) crowds.
15:24 ttmrichter In "conventional" OOP, you have the one do-all-be-all construct that covers everything: the class.
15:24 ttmrichter Access control?  That's the class.
15:24 ttmrichter Dispatching?  That's the class.
15:24 ttmrichter State packaging?  That's the class.
15:24 bearophile C++ namespaces?
15:24 ttmrichter In extreme cases your PACKAGING was the class.
15:24 ttmrichter (Java's .class files.)
15:25 ttmrichter Namespaces were grafted on top of C++ to just add to its byzantine rules.
15:25 bearophile :-)
15:25 ttmrichter Putting all these concerns into the one construct leads to horrifically complicated syntax with unmanageable semantics.  C++ being the perfect exemplar of this.
15:26 ttmrichter In Dylan these were separated.
15:26 ttmrichter Access control: the module.
15:26 ttmrichter Dispatching: the generic function.
15:26 bearophile (Now they are willing to add modules to C++17)
15:26 ttmrichter (This also gave you multiple dispatch which is a gorgeous feature.)
15:26 ttmrichter State: the class.
15:26 ttmrichter Packaging: the library.
15:27 ttmrichter It made for a language that was simultaneously simpler than C++ (and Java) as well as more expressive.
15:27 ttmrichter (Multiple dispatch was the killer feature as far as I was concerned.)
15:27 bearophile (Andrei Alexandrescu says that multiple dispatch is not commonly useful, that's probably why today D doesn't have it)
15:28 ttmrichter Bottom-test loops aren't often useful.  That's a non-argument.
15:28 ttmrichter 95% of loops are top-tested loops: for/while loops in C-like languages.
15:28 bearophile Do you mean do-while'
15:28 bearophile ?
15:28 ttmrichter And yet for that remaining 5%, it's nice to have bottom-tested loops (do...while in C-likes).
15:28 bearophile I see, and I can agree
15:29 ttmrichter Oh, and on top of that Dylan had a hygenic macro system.
15:29 bearophile (I think Scala designer agrees with you regarding multiple dispatch)
15:29 ttmrichter Pity.  Now I have to rethink my support for it.  :)
15:29 ttmrichter ← not a Scala fan.  ;)
15:29 bearophile And I prefer the Algolic syntax of Dylan over the syntax of Clojure
15:30 bearophile Scala doesn't have multiple dispatch, I think
15:30 bearophile It's just its author agrees with your ideas there :-)
15:30 ttmrichter Multiple dispatch is like bottom-tested loops.
15:30 ttmrichter It's not NECESSARY.
15:30 ttmrichter But for those 5% cases where you use them, it's REALLY nice to have.
15:30 bearophile I understand :-)
15:32 bearophile You could add more entries here then:  http://rosettacode.org/wiki/Category:Dylan
15:32 fedaykin "Category:Dylan - Rosetta Code"
15:33 bearophile I think this is enough for me now
15:33 bearophile Thank you for the chat, and see you later.
15:33 ttmrichter I haven't programmed in Dylan since the '90s.  :)
15:33 bearophile I see. An old love then.
15:33 ttmrichter Yeah.
15:33 bearophile :-)
15:34 ttmrichter These days I'm more heavily into Mercury, Prolog, Erlang, etc.
15:34 ttmrichter And Forth for embedded work.
15:34 bearophile Mercury is not used widely :-)
15:34 ttmrichter That's right.
15:34 bearophile It's efficient, but probably I prefer more mainstream languages, as Haskell
15:35 bearophile Mainstream languages have lot of libraries, tools, documentation, they are less likely to be forgotten...
15:35 ttmrichter Haskell has two problems: shockingly bad tooling and a community that doesn't recognize that the tooling is shockingly bad.
15:35 bearophile Haskell has no tooling :-)
15:35 ttmrichter I've pretty much given up hope on Haskell ever being useful for anything beyond academic wankery.
15:36 bearophile I see it mostly as a tool to learn, and it was designed for this purpose too, it was created as a laboratory to design a functional language.
15:36 bearophile For maybe 20 years it was not meant to be used for useful work.
15:37 bearophile But lately they are trying to use it for practical things.
15:37 eMBee what's the problem with haskells tooling? (i have no diea, got any example of what is missing?)
15:37 bearophile We'll see how well it goes.
15:37 eMBee idea
15:37 ttmrichter And for the next twenty the community resists any attempt to improve the tooling.
15:37 ttmrichter And then it dies as it is entirely irrelevant to a radically-changed software landscape.
15:37 ttmrichter eMBee: The big thing that ticks me off with Haskell's tooling is Cabal.
15:38 ttmrichter It's an utter mess that actively hinders your use of the language and any of its libraries.
15:38 bearophile If it dies, it's because someone has created a successor, like Haskell comes from Miranda too
15:38 ttmrichter Or because it's irrelevant.
15:38 ttmrichter Try and use Haskell to program for a portable device.
15:38 ttmrichter iOS.  Android.  Windows Phone.  Whatever.
15:38 ttmrichter You can't.
15:38 ttmrichter Hell, try to use it for anything that's not x86.
15:39 bearophile It's 23 years old, I don't think it will vanish in the next 4 years.
15:39 ttmrichter In a computing landscape that is increasingly diverse in terms of ISAs in use (thankfully!) Haskell is glued to the dying desktop.
15:39 ttmrichter Of course it won't vanish.  SNOBOL4 hasn't vanished yet!
15:39 eMBee tried to build haskell from source on an old machine because he had a program that would not compile with the old haskell provided.
15:39 ttmrichter But Haskell will never be a major language.
15:40 * eMBee doesn't use haskell but wanted to run that one program
15:40 bearophile And I don't think the desktop will die in the next 5 years :-)
15:40 ttmrichter It's already dead.  The body just hasn't stopped twitching.
15:40 bearophile Haskell will never be a major language, this I agree
15:41 bearophile See you later :-)
15:41 ttmrichter Anyway, closing in on midnight.
15:41 ttmrichter Chat later.
15:46 eMBee don't remember the details, tried to build the new haskell using the old one, then had to update cabal or update cabal first in order t build haskell, not sure, main problem was that i ran out of diskspace on the machine so i couldn't complete it
15:52 eMBee that summarizes my experience with haskell ...
15:57 talib eMBee: which programming languages do you mostly use?
17:40 sirdancealot joined #rosettacode
18:00 Kumul joined #rosettacode
18:07 sirdancealot joined #rosettacode
18:41 GlitchMr joined #rosettacode
19:24 _ilbot joined #rosettacode
19:24 Topic for #rosettacode is now Rosetta Code: Coding in  (∞ - 1) languages ; http://irclog.perlgeek.de/rosettacode/today ; Pop  a tab and stick around! ; Account creation issues? Send an email with  your desired username to bureaucrats@rosettacode.org.
19:24 mwn3d joined #rosettacode
19:40 lambdabot joined #rosettacode
19:48 RRR2_ joined #rosettacode
21:03 sirdancealot joined #rosettacode
21:19 mwn3d1 joined #rosettacode
22:01 RRR2 joined #rosettacode
23:03 mwn3d joined #rosettacode
23:04 mwn3dsphonesucks joined #rosettacode
23:14 mwn3d joined #rosettacode
23:35 sirdancealot joined #rosettacode

| Channels | #rosettacode index | Today | | Search | Google Search | Plain-Text | summary