Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Malcolm XML
Aug 8, 2009

I always knew it would end like this.

Plastic Snake posted:

it's called asp.net mvc and it owns bones

yeah aspnet mvc owns and u should use it since it is really really nice plus you get first class support for mssql the least bad sql server

Adbot
ADBOT LOVES YOU

double riveting
Jul 5, 2013

look at them go

Notorious b.s.d. posted:

many of python's problems come from the implementation defining the design. the arrow should flow the opposite direction

obvious things that come to mind for python:
* dumbfuck refcount gc (determined by interpreter's C api)
* totally unfixable global interpreter lock

when google can't fix your locking problem you know you are in trouble

* how is reference counting prescribed by the design of python-the-language?
* from reading the page you linked, it sounds like they're struggling to get that lock thing out of this particular implementation because the dumb gc interfers with it. so they talk about moving to a different gc ("pure garbage collection"). doesn't this imply that the design is in fact independent of the implementation wrt. gc?


Notorious b.s.d. posted:

it's a consequence of going with a naive implementation rather than bytecode or anything.

you are saying "mri ~> boehm-style gc ~> problem". fair point. i was saying that, within the context of boehm-style gc, not scanning registers is a dumb mistake but not so much a sign of boehm-style gc itself being a bad idea as mr. dog seemed to imply.

double riveting
Jul 5, 2013

look at them go

Notorious b.s.d. posted:

you either can't read or can't type. many of python's problems come from the implementation defining the design. the arrow should flow the opposite direction

ah, i see; i should have said "it's okay for design to interact with the expected implementation" or something. the thought had gotten turned around in my head a few times and i was essentially thinking of some kernel of implementation details that correspond 1-to-1 with things in the design, so the latter "determines" them but in an if-and-only-if fashion. yeah, confusingly worded the wrong way around.

Notorious b.s.d.
Jan 25, 2003

by Reene

double riveting posted:

* how is reference counting prescribed by the design of python-the-language?

python-the-language is documentation written after cpython already existed. refcounting exists in perpetuity because the c module API for cpython mandates it.

alternative implementations of python (see: pypy) still have to implement the recounting, because python without pre-existing c/fortran modules is totally useless

double riveting posted:

* from reading the page you linked, it sounds like they're struggling to get that lock thing out of this particular implementation because the dumb gc interfers with it. so they talk about moving to a different gc ("pure garbage collection"). doesn't this imply that the design is in fact independent of the implementation wrt. gc?

they tried and failed.

Notorious b.s.d. fucked around with this message at 21:49 on Jan 11, 2014

multigl
Nov 22, 2005

"Who's cool and has two thumbs? This guy!"
i care passionately about something i dont use, here are some of my opinions,

Notorious b.s.d.
Jan 25, 2003

by Reene

multigl posted:

i care passionately about something i dont use, here are some of my opinions,

i use python, ruby, and perl practically every day of my life. (yes, all three.)

i just don't enjoy it, because i have seen a better world

double riveting
Jul 5, 2013

look at them go

Notorious b.s.d. posted:

python-the-language is documentation written after cpython already existed.

well, that explains why it took me years to find something resembling language documentation for it, not some loving tutorial.


quote:

refcounting exists in perpetuity because the c module API for cpython mandates it.

alternative implementations of python (see: pypy) still have to implement the recounting, because python without pre-existing c/fortran modules is totally useless

ugh, point taken, i guess. i'd retreat to saying totally useless python would actually be kind of neat. or something.

Notorious b.s.d.
Jan 25, 2003

by Reene
lest anybody think i am picking on python alone, check out ruby's refinements. the feature is brilliant. it is scoped monkey patching, made simple enough for knuckle-dragging children to use

everything is great until:

quote:

You may only activate refinements at top-level to the end of the file or in a string passed to Kernel#eval, Kernel#instance_eval or Kernel#module_eval until the end of the string.

Refinements are lexical in scope. When control is transferred outside the scope the refinement is deactivated. This means that if you require or load a file or call a method that is defined outside the current scope the refinement will be deactivated

emphasis mine. the scoping rules for refinements are determined by implementation details in mri. refinements are not a property managed by the type system, but rather something determined by the order that bytes are read by the interpreter.

this not only limits the utility of the feature, it creates a miserable amount of catchup work for alternative ruby implementations. jruby and rubinius have to find ways to implement this bizarre scope limitation despite having totally different guts

Notorious b.s.d. fucked around with this message at 22:09 on Jan 11, 2014

HORATIO HORNBLOWER
Sep 21, 2002

no ambition,
no talent,
no chance

Notorious b.s.d. posted:

  • design determined by implementation details of naive interpreter, instead of a language spec (perl, php, python, ruby, tcl, vb)

  • no compilation stage (php, python, ruby, tcl, vb)

  • broken garbage collection (perl, php, python, ruby)

  • broken threading (php, python, ruby)

vb has a language spec and of course the clr which is at least as important as the language syntax has its own spec

Socracheese posted:

is there a way to even write .net not using visual studio

sure I used to write c# code in notepad++ when I was in college. it's not painful at all imho, and the .net sdk includes everything you need to build from the command line. I wouldn't want to work on a large project that way and visual studio is the best ide ever made anyway but its certainly possible

if you're trying to write .net code on some other os then just forget about it and use java

Mr Dog posted:

in particular asp.net is horrible garbage: it tries to simulate a stateful control hierarchy within a single html <form> by serialising and HMACing the state of that control hierarchy and round-tripping it through the client, which will use some prehistoric magic javascript poo poo to attach an event to the state blob on every POST back which will fire once the server deserialises the control state.

this is the worst loving poo poo ever.

Notorious b.s.d.
Jan 25, 2003

by Reene

HORATIO HORNBLOWER posted:

vb has a language spec and of course the clr which is at least as important as the language syntax has its own spec

vb.net is an entirely different language unrelated to vb. it is a much better language in every way.

the original vb was an ad-hoc language made up as they went to satisfy the needs of their prototyping/ui mock tool

MononcQc
May 29, 2007

So apparently this is valid in Elixir:

code:
def zen do
    IO.puts IEx.color(:eval_info, """)
    * Object-Orientation is not the only way to design code.
    * Functional programming need not be complex or mathematical.
    * The foundations of programming are not assignment, if statements, and loops.
    * Concurrency does not need locks, semaphores, monitors, and the like.
    * Processes are not necessarily expensive resources.
    * Metaprogramming is not just something tacked onto a language.
    * Even if it is work, programming should be fun.
    -- Dave Thomas in "Programming Elixir"
    """
    dont_display_result
end
Is this line-ending-within-a-string standard heredoc syntax in many languages? Apparently Ruby does it too, but that's not what I'd consider a good enough sampling. It is strangely reminiscent of SGMLisms such as <b>some text <i>partially</b> italicized</i>.

E: Perl allows it, PHP doesn't. Welp.

Notorious b.s.d.
Jan 25, 2003

by Reene

MononcQc posted:

So apparently this is valid in Elixir:

code:
def zen do
    IO.puts IEx.color(:eval_info, """)
    * Object-Orientation is not the only way to design code.
    * Functional programming need not be complex or mathematical.
    * The foundations of programming are not assignment, if statements, and loops.
    * Concurrency does not need locks, semaphores, monitors, and the like.
    * Processes are not necessarily expensive resources.
    * Metaprogramming is not just something tacked onto a language.
    * Even if it is work, programming should be fun.
    -- Dave Thomas in "Programming Elixir"
    """
    dont_display_result
end
Is this line-ending-within-a-string standard heredoc syntax in many languages? Apparently Ruby does it too, but that's not what I'd consider a good enough sampling. It is strangely reminiscent of SGMLisms such as <b>some text <i>partially</b> italicized</i>.

E: Perl allows it, PHP doesn't. Welp.

afaik it comes from perl
Ruby was made by perl fans/users.

Shaggar
Apr 26, 2006

Mr Dog posted:

nah windows programming is still terrible

c# loving owns but the standard library is a very mixed bag. in particular asp.net is horrible garbage: it tries to simulate a stateful control hierarchy within a single html <form> by serialising and HMACing the state of that control hierarchy and round-tripping it through the client, which will use some prehistoric magic javascript poo poo to attach an event to the state blob on every POST back which will fire once the server deserialises the control state.

web development is not client ui development ffs.

otoh this was the state of the art in like 2010 so maybe they've just walled off that part of the standard library (which must nonetheless continue to exist in perpetuity) and created a new framework from scratch since then.

asp.net is like 10 years old. use mvc4

Shaggar
Apr 26, 2006
its not a coincidence the most popular IDEs for c# and java (vs and eclipse) are also the two best IDEs. like I guess you could develop c# or java on a non-windows platform, but idk why they hell you would (esp c#).

minidracula
Dec 22, 2007

boo woo boo

AWWNAW posted:

did u buy any of the books? cuz I'm trying to pick one out and dunno which one to get

so far i've just been reading the docs and online tutes
I didn't initially learn F# from books either, but I've bought almost every F# book out there that I know of (I do this for lots of languages). If you just wanted one to start with that covers the current latest and greatest version, I'd recommend Programming F# 3.0 by Chris Smith (O'Reilly, Amazon).

No Starch Press has a F# book in Early Access, where you buy the PDF ebook now, get access to DRM-free PDF chapters as they come out, and get the finished ebook bundle (PDF, ePub, MOBI) when it ships. Right now you can get also get 30% off (until a week from January 9) with coupon code EARLYBIRD. I don't know anything about this book yet though, nor do I know who Dave Fancher (the author) is, beyond the author blurb on the No Starch page.

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

Shaggar posted:

asp.net is like 10 years old. use mvc5

Nomnom Cookie
Aug 30, 2009



Notorious b.s.d. posted:

i disagree. java and .net basically own bones

this is because they were written by people who had already learned some hard lessons about language and platform design. on rare occasion, the "second system effect" is a positive good.

thats not the second system effect someone needs a mmm refresher

power botton
Nov 2, 2011

understanding and exploiting the second system effect is key to keeping that sweet sweet maintenance stream.

Notorious b.s.d.
Jan 25, 2003

by Reene

Nomnom Cookie posted:

thats not the second system effect someone needs a mmm refresher

i honestly had no idea that second system effect came from mmm. maybe because i have never read mmm only summaries and quoted passages. or else i would remember important stuff like this.

when i read the passage in in context, java and .net are the "third systems," things that work correctly, made by men who have already suffered through overreach in their "second systems"

MononcQc
May 29, 2007

Notorious b.s.d. posted:

i honestly had no idea that second system effect came from mmm. maybe because i have never read mmm only summaries and quoted passages. or else i would remember important stuff like this.

when i read the passage in in context, java and .net are the "third systems," things that work correctly, made by men who have already suffered through overreach in their "second systems"

Second system effect comes from the Mythical Man Month right, and means that once you've made a small good product/system, the second one after that is one where you tend to shoot really big because you think you know poo poo and it's gonna be easy, and then you fail miserably because woops, there's a different kind of complexity there.

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
it's a mistake to consider either java or C# as direct successors to anything imo. obviously c# was influenced by java but it was also specifically required to be not-java so microsoft wouldn't get sued

suffix
Jul 27, 2013

Wheeee!
c# is an acceptable java

but the only places it's used around here are lovely sharepoint consulting shops, so lol never touching that

Damiya
Jul 3, 2012

Shaggar posted:

its not a coincidence the most popular IDEs for c# and java (vs and eclipse) are also the two best IDEs. like I guess you could develop c# or java on a non-windows platform, but idk why they hell you would (esp c#).

Shaggar was wrong.

IntelliJ IDEA is the best Java IDE. Both Eclipse and IntelliJ are comfortably cross platform.

I definitely wouldn't try to write c# on non-windows though

FamDav
Mar 29, 2008

Shaggar posted:

its not a coincidence the most popular IDEs for c# and java (vs and eclipse) are also the two best IDEs. like I guess you could develop c# or java on a non-windows platform, but idk why they hell you would (esp c#).

woah thats not how you spell intellij

Valeyard
Mar 30, 2012


Grimey Drawer
i was doing a project last year were the majority of the team thought the best way to use version control was to export Eclipse projects to zip and then push the zip

Brain Candy
May 18, 2006

Valeyard posted:

i was doing a project last year were the majority of the team thought the best way to use version control was to export Eclipse projects to zip and then push the zip

:stare: that's not even wrong

Valeyard
Mar 30, 2012


Grimey Drawer
prior to this was better when they would actually email round the archives, everytime they changed a line

MononcQc
May 29, 2007

I've posted this document here a few times regarding methodologies, and finally decided to extract the interesting bits from it: Interesting bits from “Characterizing people as non-linear, first-order components in software development” :toot:

Soricidus
Oct 21, 2010
freedom-hating statist shill

Shaggar posted:

its not a coincidence the most popular IDEs for c# and java (vs and eclipse) are also the two best IDEs. like I guess you could develop c# or java on a non-windows platform, but idk why they hell you would (esp c#).
The only reason I use java at all is because I have one program that still has some users stuck on windows, and using java means I don't have to develop it there (but can still be confident that it'll just work)

coffeetable
Feb 5, 2006

TELL ME AGAIN HOW GREAT BRITAIN WOULD BE IF IT WAS RULED BY THE MERCILESS JACKBOOT OF PRINCE CHARLES

YES I DO TALK TO PLANTS ACTUALLY

MononcQc posted:

I've posted this document here a few times regarding methodologies, and finally decided to extract the interesting bits from it: Interesting bits from “Characterizing people as non-linear, first-order components in software development” :toot:

between this and what you were saying the other day about not being a fan of OO, you should grab coplien's lean architecture if you get a chance. the first half or so is centred around making the greatest use of people in the design process (and heavily cites cockburn), while the second half seagues into the author's proposed extension of MVC. tl;dr is that since OO is great at capturing data but poo poo at capturing interactions, you can avoid a lot of issues by isolating one from the other for as long as possible. write minimalistic data-only objects, write behaviour in a static, functional style, then nail the two together at runtime.

all that said i know nothing so it might be poo poo and im just easily impressed~

tef
May 30, 2004

-> some l-system crap ->

MononcQc posted:

I've posted this document here a few times regarding methodologies, and finally decided to extract the interesting bits from it: Interesting bits from “Characterizing people as non-linear, first-order components in software development” :toot:

:toot: it's a good writeup of an interesting paper :toot:

HORATIO HORNBLOWER
Sep 21, 2002

no ambition,
no talent,
no chance

MononcQc posted:

I've posted this document here a few times regarding methodologies, and finally decided to extract the interesting bits from it: Interesting bits from “Characterizing people as non-linear, first-order components in software development” :toot:

i enjoyed reading this thanks

Sapozhnik
Jan 2, 2005

Nap Ghost
make objects that either encapsulate information or manipulate it, never both

idk if that's an "oo design" principle but it should be

e.g. write a class hierarchy of DOM nodes and then write some other parser/serialiser classes that produce/consume trees of those objects. io streams should be objects sure but said parsers/serialisers work work equally well as plain old functions.

oh you want to actually manipulate the nodes? then either pick either a mess of dynamic casting and admit your type system is not up to the job, or contrive some visitors where you have to do a whole bunch of bureaucracy if closures aren't a thing in your language.

java-style oop is poo poo and c++-style oo doesn't even know what the gently caress it's doing with its life. and just lol if you don't even have optional strong typing.

oop is such poo poo

Notorious b.s.d.
Jan 25, 2003

by Reene

Valeyard posted:

i was doing a project last year were the majority of the team thought the best way to use version control was to export Eclipse projects to zip and then push the zip

this is not the worst way to do it

Notorious b.s.d.
Jan 25, 2003

by Reene

Valeyard posted:

prior to this was better when they would actually email round the archives, everytime they changed a line

this is the worst way to do it

qntm
Jun 17, 2009

MononcQc posted:

I've posted this document here a few times regarding methodologies, and finally decided to extract the interesting bits from it: Interesting bits from “Characterizing people as non-linear, first-order components in software development” :toot:

wait, so the observation "Methodologies requiring disciplined consistency are fragile" is from the same guy who invented agile, a methodology involving time-boxed development iterations and daily status meetings?

markerstore
Dec 5, 2003
Canny!

qntm posted:

wait, so the observation "Methodologies requiring disciplined consistency are fragile" is from the same guy who invented agile, a methodology involving time-boxed development iterations and daily status meetings?

well he would know

MononcQc
May 29, 2007

qntm posted:

wait, so the observation "Methodologies requiring disciplined consistency are fragile" is from the same guy who invented agile, a methodology involving time-boxed development iterations and daily status meetings?

My guess is that Agile goes (or intended to go) that way more to support consistency than to be strict in terms of things you should do. The original idea appeared to be to force communication to report quickly on issues and problems to readjust, not to tell you how to micro-manage a team and give them very strict schedules to exhaust them.

Then people actively selling the methodology and the courses had to set up certification and poo poo, and make that process rigid as hell, and the businesses adopting it just decided to disguise waterfall into sprints and more gantt charts (because you gotta track these sprint items!).

In the end, nothing changed at all. Instead of taking ideas that were about adapting to the reality of software development (poo poo happens, adapt quickly to the unexpected, people are poo poo at estimates, customers never know what they want so reprioritize, have tight feed-back loops, etc.), it was sold and adopted as a system allowing you to press more juice out of your devs. Of course, everybody but developers were happy about it.

Then the devs just ignored yet another methodology where stand-ups were done sitting down for 20 minutes every morning, and kept going their merry way.

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

Notorious b.s.d. posted:

this is the worst way to do it
seems you missed Dr. Honked's story about the Guy With Only One Source File

Adbot
ADBOT LOVES YOU

fart simpson
Jul 2, 2005

DEATH TO AMERICA
:xickos:

Gazpacho posted:

seems you missed Dr. Honked's story about the Guy With Only One Source File

tell me about this

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply