--- Log opened Sun Oct 05 00:00:00 2014 |
00:28 | | Harlow [harlow@Nightstar-d3n3qj.mycingular.net] has joined #code |
00:31 | < Harlow> | I know this is a 'hot topic' so I'll offer this talk too, "How many programming languages do we need?"(Presented By: Jeff Bezanson). Let me know if you want me to stream it. This is the last presentation I'm going to. |
00:32 | <@Tamber> | Clearly (n+1), where n is the number of programming languages we have right now. Re-evaluate every time a new programming language comes along. |
00:33 | < Harlow> | lol |
00:34 | < Harlow> | "Why python is the last language you'll have to learn" |
00:34 | < Harlow> | :/ |
00:34 | <&McMartin> | Python: where every method call is basically a magic number in the code. |
00:34 | <&McMartin> | Clearly nothing can possibly go wrong |
00:35 | <@Tamber> | That sounds... Bad. |
00:36 | <&McMartin> | Welcome to the debate between static vs. dynamic languages. It's only been raging for like 60 years, I'm sure we can sort it out by casually asserting that of course our views on it are right. |
00:37 | <@Tamber> | :) |
00:37 | < Harlow> | well so far he's just presenting quotes and information |
00:37 | < Harlow> | "popularity comes from spreading to other niches, not being the best in the niche" - Leo Meyerovich |
00:38 | < Harlow> | So basically he's going on how languages actually need to have a broadening scope. |
00:39 | <@Tamber> | "Specialisation is for insects. And Forth." |
00:39 | <@Tamber> | :p |
00:42 | <@Alek> | :P |
00:44 | < Harlow> | brb |
00:44 | | Harlow [harlow@Nightstar-d3n3qj.mycingular.net] has quit [[NS] Quit: BED] |
00:45 | <&McMartin> | How about "and C"~ |
00:45 | <&McMartin> | That said, um |
00:45 | <&McMartin> | Forth was written to control the motors on telescopes. |
00:45 | <&McMartin> | Forth hella metastasized. |
00:46 | <~Vornicus> | I've never written in Forth |
00:46 | <~Vornicus> | PostScript yes, but never Forth |
00:53 | <@Tamber> | :) |
00:53 | | harlow [NSwebIRC@Nightstar-lke.m1q.36.72.IP] has joined #code |
00:53 | < harlow> | http://www.ustream.tv/channel/pgrm |
00:54 | < harlow> | if you want to watch the stream |
00:54 | <@Tamber> | I've puttered about with it, but never actually done anything beyond trying to code-golf little snippets. |
00:54 | < harlow> | thats it, the guy is form mit |
01:00 | < harlow> | so this guy is pushing Julia because he wrote it, its like c++ but really like python |
01:00 | < harlow> | http://julialang.org/ i've never even heard of this |
01:01 | <&McMartin> | I've heard of it but mostly ignored it |
01:01 | <&McMartin> | Ironically, despite compilers and programming languages being my primary focus as a grad student, this has resulted in me caring *less* about esoteric/niche languages |
01:01 | <&McMartin> | Possibly because I've seen under the hood enough to know how to scross idiomatic boundaries. |
01:02 | < harlow> | this code is crazy |
01:02 | < harlow> | it seems to over simplify |
01:02 | < harlow> | but its pretty quick looking at the bench marks on the web |
01:06 | < harlow> | any questions i should ask to stump this guy? |
01:07 | < harlow> | just for giggles |
01:10 | < harlow> | so the final answer is we need an infinite sequence of ever-better languages. |
01:10 | <&McMartin> | Sure~ |
01:11 | <&McMartin> | That said there are also different value metrics |
01:12 | < harlow> | what is a value metric? |
01:12 | < harlow> | like what the language is designed for |
01:13 | <&McMartin> | "What does it mean to be 'a good language'?" |
01:13 | < harlow> | should i ask him that? |
01:13 | <&McMartin> | Nah |
01:14 | <&McMartin> | It's not where he's targeting the talk. |
01:14 | <@TheWatcher> | Ask him what is best in life. |
01:14 | <&McMartin> | What the language is designed to be good at is decent, though. |
01:14 | < harlow> | lol |
01:14 | <&McMartin> | If you're in a place where assembler makes sense to use, Python is going to such. |
01:14 | < harlow> | magic pointer wrapper classes? |
01:14 | <&McMartin> | That keeps being true if you generalize "python" to families of languages |
01:15 | < harlow> | some guy just asked a question too far over my head |
01:15 | < harlow> | :/ |
01:15 | <&McMartin> | If you're in a place where "pointer" is the sensible level to operate, you should be using C, not assembler >_> |
01:16 | < harlow> | he just explained it, i guess it has to do with if you dont know who owns the item then you cant parallelize it. |
01:18 | <&McMartin> | What was the question? |
01:19 | <&McMartin> | And yeah, parallelizability ends up being very difficult in a lot of 'low-level' languages that are nevertheless abstracting important things away |
01:19 | < harlow> | The question was something like how does julia deal with objects that it might not know who it belongs to. |
01:20 | < harlow> | something like that |
01:21 | | * McMartin nods |
01:21 | <&McMartin> | Ownership disciplines usually surround manual memory management, but it has a place in multiprogramming too |
01:21 | <&McMartin> | The memory management one amuses me though because of its formal definition. |
01:21 | <&McMartin> | Object A owns object B if A destroys B in every possible run of the program. |
01:21 | <&McMartin> | PWN3D. |
01:22 | <@Alek> | pfft |
01:22 | <&McMartin> | For added fun there is a notion of "domination" in control flow graphs |
01:26 | < harlow> | well he says lisp syntax is the closest syntax gets to good |
01:28 | < harlow> | whelp |
01:28 | < harlow> | thats it |
01:28 | | harlow [NSwebIRC@Nightstar-lke.m1q.36.72.IP] has quit [[NS] Quit: ] |
01:35 | | gnolam [lenin@Nightstar-utbkuh.cust.bredbandsbolaget.se] has quit [Connection reset by peer] |
01:35 | | gnolam [lenin@Nightstar-utbkuh.cust.bredbandsbolaget.se] has joined #code |
01:35 | | mode/#code [+o gnolam] by ChanServ |
01:36 | <~Vornicus> | Arg. I have determined that I have no idea at all how to do, uh |
01:36 | <~Vornicus> | users. |
01:39 | <&McMartin> | wat |
01:40 | <~Vornicus> | Well, okay, let me explain |
01:42 | <~Vornicus> | I need to figure out a way to make sure that users can only do the things that they're allowed to do. |
01:42 | <&McMartin> | That is a pretty hard problem |
01:45 | <~Vornicus> | At any given moment the list of things that a user actually *can* do is very limited; in typical cases for my particular use case there are usually only one or two write-shaped commands available, and only one user can access these at a time (it is a turn-based game) |
01:47 | <~Vornicus> | now, the problem I'm having right now is that every single command has this pattern: "is it the phase where this command can be executed? Is it this user's turn?" |
01:47 | <~Vornicus> | and only then does it get to the nitty gritty. And it feels like I should be able to push this out further? |
01:49 | <~Vornicus> | Never mind that I also need to set up the thing where it decides what user is actually talking |
03:06 | <&ToxicFrog> | In spellcast I'm doing the latter by having the network/http routing layer automatically tag each message with the id of the player that sent it |
03:06 | <&ToxicFrog> | And the former by dividing the game into phases and having each phase explicitly declare the message types that it understands. |
03:07 | <&ToxicFrog> | So e.g. every phase understands "chat", but "gestures" is only permitted during the collect-gestures phase. |
03:07 | <&ToxicFrog> | And actions that mutate player state implicitly apply to the player that sent them. |
03:07 | <&ToxicFrog> | (I have no idea if this helps at all) |
03:09 | <~Vornicus> | It does, some. I'm trying to figure out how to handle it though; as it is, you interact with the model (as a controller) by calling the model's manipulate functions directly |
03:12 | <~Vornicus> | (thus, all my command functions have the pattern: "right phase? right user? resources available for command?" |
05:11 | | Derakon is now known as Derakon[AFK] |
05:21 | | Kindamoody[zZz] is now known as Kindamoody |
05:36 | | mac is now known as macdjord|slep |
05:41 | <&jerith> | Vornicus: A decorator that knows which phases are allowed and checks the user, etc? |
05:41 | <~Vornicus> | hmm, could |
05:42 | <&jerith> | @command_for(user='active', phase=('upkeep', 'movement')) |
05:44 | <&jerith> | That won't cover everything, but it lets you factor out the common bits. |
05:56 | | Red_Queen [Z@Nightstar-g2q2tu.customer.tdc.net] has quit [Ping timeout: 121 seconds] |
06:52 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
07:04 | | celticminstrel is now known as celmin|sleep |
07:56 | | thalass [thalass@Nightstar-sbrrj9.bigpond.net.au] has joined #code |
07:56 | | mode/#code [+o thalass] by ChanServ |
07:56 | | thalass [thalass@Nightstar-sbrrj9.bigpond.net.au] has quit [Connection closed] |
07:57 | | Thalass [thalass@Nightstar-sbrrj9.bigpond.net.au] has joined #code |
07:57 | | mode/#code [+o Thalass] by ChanServ |
09:08 | | Kindamoody is now known as Kindamoody|afk |
09:30 | | Orthia [orthianz@Nightstar-6dj3iv.callplus.net.nz] has quit [[NS] Quit: Going dooooown...] |
12:44 | | Orthia [orthianz@Nightstar-6dj3iv.callplus.net.nz] has joined #code |
12:44 | | mode/#code [+o Orthia] by ChanServ |
14:29 | | macdjord|slep is now known as macdjord |
14:33 | | Thalass [thalass@Nightstar-sbrrj9.bigpond.net.au] has quit [[NS] Quit: ARRR] |
15:29 | | celmin|sleep is now known as celticminstrel |
17:16 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
17:16 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
18:15 | <@Tamber> | "Project now has an #ASCII-art banner. Clearly, now serious projekt. Professionalism levels through the roof." |
18:16 | <@Tamber> | And, now the important business is concluded, time to make it... well, do something. |
19:10 | | Derakon[AFK] is now known as Derakon |
19:15 | | Kindamoody|afk is now known as Kindamoody |
19:58 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
19:59 | | mode/#code [+o Checkmate] by ChanServ |
21:07 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
21:36 | | Kindamoody is now known as Kindamoody[zZz] |
22:21 | | Checkmate [Z@Nightstar-g2q2tu.customer.tdc.net] has joined #code |
22:21 | | mode/#code [+o Checkmate] by ChanServ |
22:23 | | Checkmate [Z@Nightstar-g2q2tu.customer.tdc.net] has quit [Connection closed] |
22:23 | | Checkmate [Z@Nightstar-g2q2tu.customer.tdc.net] has joined #code |
22:23 | | mode/#code [+o Checkmate] by ChanServ |
23:04 | | RchrdB2 [RichardB@Nightstar-v5j366.understood.systems] has joined #code |
23:04 | | RchrdB [RichardB@Nightstar-v5j366.understood.systems] has quit [Connection closed] |
23:41 | | McMartin [mcmartin@Nightstar-rpcdbf.sntcca.sbcglobal.net] has quit [Ping timeout: 121 seconds] |
--- Log closed Mon Oct 06 00:00:16 2014 |