Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't assume two-fer is the second exercise. #949

Closed
Smarticles101 opened this issue Oct 12, 2017 · 10 comments · Fixed by #975
Closed

Don't assume two-fer is the second exercise. #949

Smarticles101 opened this issue Oct 12, 2017 · 10 comments · Fixed by #975
Assignees

Comments

@Smarticles101
Copy link
Member

Smarticles101 commented Oct 12, 2017

Ref. exercism/bash#86

Don't assume two-fer is the second exercise. Remove the section on test driven development and maybe put it somewhere else? What is the consensus on this?

@Smarticles101 Smarticles101 self-assigned this Oct 12, 2017
@Insti
Copy link
Contributor

Insti commented Oct 12, 2017

@rpottsoh
Copy link
Member

I don't see how this is related to exercism/bash#68.

Another way to think about this. Hello-World is the 0th exercise. Its purpose is to help the student realize that their environment is properly setup and working correctly for the given track. This, in-turn, makes two-fer a good 1st exercise....

@petertseng
Copy link
Member

petertseng commented Oct 13, 2017

I can surely say this: For the same reasons that I in #520 recommend against old hello-world (roughly equivalent to two-fer) as the first exercise of at least the six tracks Elm, F#, Haskell, OCaml, Purescript, and Rust, I recommend against two-fer as the second exercise of those tracks. I am not a maintainer of all six tracks I named, but my recommendation remains.

Hello-World is the 0th exercise. Its purpose is to help the student realize that their environment is properly setup and working correctly for the given track.

I agree, because it contains the minimum that will be present in all further exercises (a test suite that tests some function) without introducing any logic in the tested function(s).

This, in-turn, makes two-fer a good 1st exercise....

I do not agree, because the previous statement (contains the minimum that will be present in all further exercises) is not true. Furthermore, depending on the track maintainers' decision, variable arities and/or option/maybe are not necessarily appropriate to be the first non-hello-world exercise.
Edit: The crossed-out reasoning is an incorrect argument, so I retract it. The remaining portion is my remaining argument that I stand by.

So, the "just after Hello World" at https://github.com/exercism/problem-specifications/blob/master/exercises/two-fer/metadata.yml#L3 seems to be too restrictive of the position of the exercise.

An interesting question to ask is: Is there any track that wishes to use two-fer as an exercise in any position other than second?

If there never will be any such track, there will be no contradiction to leave everything as-is; tracks either have two-fer second or not at all.

If there will be, then indeed "just after Hello World" would need to be removed, and any other changes y'all find necessary.

@Smarticles101
Copy link
Member Author

sorry @rpottsoh you're right it doesn't relate to exercism/bash#68 I meant exercism/bash#86 I have edited the description to fix the error

@petertseng
Copy link
Member

petertseng commented Oct 13, 2017

Here are the tracks that have two-fer, and two-fer's zero-indexed position in each:

gems/trackler-2.2.1.45$ for t in tracks/*; do ruby -rjson -e "i = JSON.parse(File.read('$t/config.json'))['exercises'].index { |e| e['slug'] == 'two-fer' }; puts '%20s: %d' % ['$t', i] if i"; done
         tracks/bash: 10
       tracks/csharp: 5
       tracks/delphi: 1
       tracks/erlang: 19
       tracks/factor: 2
       tracks/fsharp: 4
           tracks/go: 1
       tracks/groovy: 7
         tracks/java: 1
       tracks/python: 76
          tracks/sml: 1

@Insti
Copy link
Contributor

Insti commented Oct 26, 2017

Are you going to submit a PR for this @Smarticles101 ?

@Smarticles101
Copy link
Member Author

@Insti yep, I can do that :)

@rpottsoh
Copy link
Member

@Insti said:

The descriptions should only describe the task.

I agree with this in principle.

I see in #975 that the section of TDD has been removed. Is this information that should appear somewhere else? Does it already appear somewhere else? Since hello-world seems to be the defacto first exercise, should the removed text be incorporated there? If so how, in the README or the canonical data?

@petertseng
Copy link
Member

Since hello-world seems to be the defacto first exercise, should the removed text be incorporated there?

If it did, it would revert 35aa16b#diff-607a2b1720cb33d38eae0ecd2272b67e and #544 . If that is done, will the person who does that please provide the reason why it appropriate to add it back to hello-world, thank you

@Insti
Copy link
Contributor

Insti commented Oct 27, 2017

Tracks should decide:

a) The order of the exercises.
b) The content of their Readmes

If there needs to be a common version about TDD philosophy, this should probably be stored in the documentation repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants