DCS Poll - 80-Character Line Limit


The Vision Council

DCS Poll - 80-Character Line Limit  

15 members have voted

  1. 1. With the addition of record labels which have values that contain other records, such as PROC and PROCBLK, it is now possible that a single line could exceed the current 80-character limit defined in the standard. A proposal has been made by the committee to relax this restriction. Please select one of the following options:

    • I do not support extending the 80-character limit. (Please explain why)
    • I support extending the limit to 120-characters.
    • I support removing the limit completely.

This poll is closed to new votes

  • Please sign in or register to vote in this poll.
  • Poll closed on 05/05/2018 at 06:59 AM

Recommended Posts

Posted

Paul,

What are the additional issues with no limit? Can you please elaborate? If people are voting preferences then giving reasons could help people who aren't sure.

For a machine/software it doesn't matter, for a person they'll maybe need to perform the (very minimal) effort of scrolling anyway so just how much scrolling shouldn't really matter (and word-wrap exists and is very very common if scrolling sideways is really not wanted).

 

For datasets... to clarify this won't create an option for the entire data set on a single line, since datasets contain multiple different labels, and individual records/labels still need to be on different lines. You instead meant about each different single label (and single logical data record) in a dataset being just once in a single line instead of spread over multiple lines, yes?

That seems to me like an advantage, rather than a problem, for the following reasons:

  • Semantically it makes sense. If all those multiple records are logically just a single continuous record (e.g. R records after TRCFMT), then sending a single record is a better fit than splitting. Instead of taking a *single* record and sending it as if it was *multiple* record, you just send a *single* record as if it was... a *single* record.
  • It will probably actually be easier for a person wanting to read the record, once the limit is such that scrolling sideways is needed anyway. With a single record/line you always know where you are, and how/where the data continues. You want to keep reading, you keep scrolling to the right. With a split over multiple records you keep scrolling back and forth (e.g. right until the end of one line, then back left to the beginning of another, then right to the end of that one, then left to the start of the next one). More effort, more context switches, more hassle.
  • It's easier for people going through the data who don't care about that particular data-set/record. Instead of having to skip down over multiple (sometimes pages-full of) lines, these take the same one line (or just a few for a dataset) and then on to the next label.
    I mean, assume you don't care about the trace, which of these is easier to go over (this sample is mostly junk, copied and increased from a sample in the DCS, not real data, intended for visualization purpose only)  ?
    LIND=1.53;1.53
    JOB=12345
    SVAL=7.52;7.23
    TRCFMT=1;400;U;R;F<CR/LF>
    R=2479;2583;2605;2527;2394;2253;2137;2044;1975;1935<CR/LF>
    R=1922;1939;1989;2072;2184;2322;2471;2599;2645;2579<CR/LF>
    R=1909;1914;1941;1983;2033;2089;2140;2200;2277;2371<CR/LF>
    R=2479;2583;2605;2527;2394;2253;2137;2044;1975;1935<CR/LF>
    R=1922;1939;1989;2072;2184;2322;2471;2599;2645;2579<CR/LF>
    R=1909;1914;1941;1983;2033;2089;2140;2200;2277;2371<CR/LF>
    R=2479;2583;2605;2527;2394;2253;2137;2044;1975;1935<CR/LF>
    R=1922;1939;1989;2072;2184;2322;2471;2599;2645;2579<CR/LF>
    R=1909;1914;1941;1983;2033;2089;2140;2200;2277;2371<CR/LF>
    R=2479;2583;2605;2527;2394;2253;2137;2044;1975;1935<CR/LF>
    R=1922;1939;1989;2072;2184;2322;2471;2599;2645;2579<CR/LF>
    R=1909;1914;1941;1983;2033;2089;2140;2200;2277;2371<CR/LF>
    A=0;90;180;270;360;450;540;630;720;810<CR/LF>
    A=0;90;180;270;360;450;540;630;720;810<CR/LF>
    A=0;90;180;270;360;450;540;630;720;810<CR/LF>
    A=0;90;180;270;360;450;540;630;720;810<CR/LF>
    A=0;90;180;270;360;450;540;630;720;810<CR/LF>
    A=900;990;1080;1170;1260;1350;1440;1530;1620;1710<CR/LF>
    A=35100;35190;35280;35370;35460;35550;35640;35730;35820;35910<CR/LF>
    ZFMT=1;100;U;R;F<CR/LF>
    Z=322;331;342;328;314;308;300;295;288;280<CR/LF>
    Z=316;318;324;328;333;343;349;352;357;362<CR/LF>
    Z=316;318;324;328;333;343;349;352;357;362<CR/LF>
    Z=316;318;324;328;333;343;349;352;357;362<CR/LF>
    Z=316;318;324;328;333;343;349;352;357;362<CR/LF>
    Z=316;318;324;328;333;343;349;352;357;362<CR/LF>
    Z=316;318;324;328;333;343;349;352;357;362<CR/LF>
    Z=316;318;324;328;333;343;349;352;357;362<CR/LF>
    ZA=0;360;720;1080;1440;1800;2160;2520;2880;3240<CR/LF>
    ZA=0;360;720;1080;1440;1800;2160;2520;2880;3240<CR/LF>
    ZA=0;360;720;1080;1440;1800;2160;2520;2880;3240<CR/LF>
    ZA=0;360;720;1080;1440;1800;2160;2520;2880;3240<CR/LF>
    ZA=0;360;720;1080;1440;1800;2160;2520;2880;3240<CR/LF>
    ZA=0;360;720;1080;1440;1800;2160;2520;2880;3240<CR/LF>
    ZA=32400;32760;33120;33480;33840;34200;34560;34920;35280;35640<CR/LF>
    TRCFMT=1;400;U;L;F<CR/LF>
    R=2517;2450;2379;2318;2247;2168;2086;2014;1958;1923<CR/LF>
    R=1909;1914;1941;1983;2033;2089;2140;2200;2277;2371<CR/LF>
    R=1909;1914;1941;1983;2033;2089;2140;2200;2277;2371<CR/LF>
    R=1909;1914;1941;1983;2033;2089;2140;2200;2277;2371<CR/LF>
    R=1909;1914;1941;1983;2033;2089;2140;2200;2277;2371<CR/LF>
    R=1909;1914;1941;1983;2033;2089;2140;2200;2277;2371<CR/LF>
    R=1909;1914;1941;1983;2033;2089;2140;2200;2277;2371<CR/LF>
    R=1909;1914;1941;1983;2033;2089;2140;2200;2277;2371<CR/LF>
    R=1922;1939;1989;2072;2184;2322;2471;2599;2645;2579<CR/LF>
    A=0;90;180;270;360;450;540;630;720;810<CR/LF>
    A=900;990;1080;1170;1260;1350;1440;1530;1620;1710<CR/LF>
    A=900;990;1080;1170;1260;1350;1440;1530;1620;1710<CR/LF>
    A=900;990;1080;1170;1260;1350;1440;1530;1620;1710<CR/LF>
    A=900;990;1080;1170;1260;1350;1440;1530;1620;1710<CR/LF>
    A=900;990;1080;1170;1260;1350;1440;1530;1620;1710<CR/LF>
    A=35100;35190;35280;35370;35460;35550;35640;35730;35820;35910<CR/LF>
    ZFMT=1;100;U;L;F<CR/LF>
    Z=322;331;342;328;314;308;300;295;288;280<CR/LF>
    Z=316;318;324;328;333;343;349;352;357;362<CR/LF>
    Z=316;318;324;328;333;343;349;352;357;362<CR/LF>
    Z=316;318;324;328;333;343;349;352;357;362<CR/LF>
    Z=316;318;324;328;333;343;349;352;357;362<CR/LF>
    ZA=0;360;720;1080;1440;1800;2160;2520;2880;3240<CR/LF>
    ZA=0;360;720;1080;1440;1800;2160;2520;2880;3240<CR/LF>
    ZA=0;360;720;1080;1440;1800;2160;2520;2880;3240<CR/LF>
    ZA=0;360;720;1080;1440;1800;2160;2520;2880;3240<CR/LF>
    ZA=0;360;720;1080;1440;1800;2160;2520;2880;3240<CR/LF>
    ZA=32400;32760;33120;33480;33840;34200;34560;34920;35280;35640<CR/LF>
    GAX=0;90
    ADD=2.75;150

    or:

    LIND=1.53;1.53
    JOB=12345
    SVAL=7.52;7.23
    TRCFMT=1;400;U;R;F<CR/LF>
    R=2479;2583;2605;2527;2394;2253;2137;2044;1975;1935;1922;1939;1989;2072;2184;2322;2471;2599;2645;2579;1909;1914;1941;1983;2033;2089;2140;2200;2277;2371;2479;2583;2605;2527;2394;2253;2137;2044;1975;1935;1922;1939;1989;2072;2184;2322;2471;2599;2645;2579;1909;1914;1941;1983;2033;2089;2140;2200;2277;2371;2479;2583;2605;2527;2394;2253;2137;2044;1975;1935;1922;1939;1989;2072;2184;2322;2471;2599;2645;2579;1909;1914;1941;1983;2033;2089;2140;2200;2277;2371;2479;2583;2605;2527;2394;2253;2137;2044;1975;1935;1922;1939;1989;2072;2184;2322;2471;2599;2645;2579;1909;1914;1941;1983;2033;2089;2140;2200;2277;2371<CR/LF>
    A=0;90;180;270;360;450;540;630;720;810;0;90;180;270;360;450;540;630;720;810;0;90;180;270;360;450;540;630;720;810;0;90;180;270;360;450;540;630;720;810;0;90;180;270;360;450;540;630;720;810;900;990;1080;1170;1260;1350;1440;1530;1620;1710;35100;35190;35280;35370;35460;35550;35640;35730;35820;35910<CR/LF>
    ZFMT=1;100;U;R;F<CR/LF>
    Z=322;331;342;328;314;308;300;295;288;280;316;318;324;328;333;343;349;352;357;362;316;318;324;328;333;343;349;352;357;362;316;318;324;328;333;343;349;352;357;362;316;318;324;328;333;343;349;352;357;362;316;318;324;328;333;343;349;352;357;362;316;318;324;328;333;343;349;352;357;362;316;318;324;328;333;343;349;352;357;362<CR/LF>
    ZA=0;360;720;1080;1440;1800;2160;2520;2880;3240;0;360;720;1080;1440;1800;2160;2520;2880;3240;0;360;720;1080;1440;1800;2160;2520;2880;3240;0;360;720;1080;1440;1800;2160;2520;2880;3240;0;360;720;1080;1440;1800;2160;2520;2880;3240;0;360;720;1080;1440;1800;2160;2520;2880;3240;32400;32760;33120;33480;33840;34200;34560;34920;35280;35640<CR/LF>
    TRCFMT=1;400;U;L;F<CR/LF>
    R=2517;2450;2379;2318;2247;2168;2086;2014;1958;1923;1909;1914;1941;1983;2033;2089;2140;2200;2277;2371;1909;1914;1941;1983;2033;2089;2140;2200;2277;2371;1909;1914;1941;1983;2033;2089;2140;2200;2277;2371;1909;1914;1941;1983;2033;2089;2140;2200;2277;2371;1909;1914;1941;1983;2033;2089;2140;2200;2277;2371;1909;1914;1941;1983;2033;2089;2140;2200;2277;2371;1909;1914;1941;1983;2033;2089;2140;2200;2277;2371;1922;1939;1989;2072;2184;2322;2471;2599;2645;2579<CR/LF>
    A=0;90;180;270;360;450;540;630;720;810;900;990;1080;1170;1260;1350;1440;1530;1620;1710;900;990;1080;1170;1260;1350;1440;1530;1620;1710;900;990;1080;1170;1260;1350;1440;1530;1620;1710;900;990;1080;1170;1260;1350;1440;1530;1620;1710;900;990;1080;1170;1260;1350;1440;1530;1620;1710;35100;35190;35280;35370;35460;35550;35640;35730;35820;35910<CR/LF>
    ZFMT=1;100;U;L;F<CR/LF>
    Z=322;331;342;328;314;308;300;295;288;280;316;318;324;328;333;343;349;352;357;362;316;318;324;328;333;343;349;352;357;362;316;318;324;328;333;343;349;352;357;362;316;318;324;328;333;343;349;352;357;362<CR/LF>
    ZA=0;360;720;1080;1440;1800;2160;2520;2880;3240;0;360;720;1080;1440;1800;2160;2520;2880;3240;0;360;720;1080;1440;1800;2160;2520;2880;3240;0;360;720;1080;1440;1800;2160;2520;2880;3240;0;360;720;1080;1440;1800;2160;2520;2880;3240;32400;32760;33120;33480;33840;34200;34560;34920;35280;35640<CR/LF>
    GAX=0;90
    ADD=2.75;150
  • The purpose behind data sets, as far as I can see looking at all existing ones, is to allow related sets of *diferent* labels (e.g. you can't replace entire TRCFMT with just a complete R label, and same for each one, they all have more than a single current label will contain). The length limit means that potentially data sets have to be also used for what can be just a *single* label. This is indeed an existing side-effect for the fact that the length limit currently exists, but I really don't think it's the *purpose* .

Plus, and this one is important for that concern, for people who don't want scrolling to the side, pretty much every text viewer/editor these days has built-in word-wrap feature. Which should make this much much easier for anyone who considers this important:

vca-long-crop.jpg.98a94229304dd845cc99ff3aa6d57f9a.jpg

 

Keeping the 80 limit could make sense for machines/software that were made with the 80 characters as an explicit assumption in the code. But once that is waived (as would be needed anyway for an increase to 120 characters, and as is already waived for some label individually so essentially those machines are already not compatible and not supported) then forcing a new limit doesn't seem to me like a good idea.

And keeping it will make it hard to create future labels that maybe need more data, and could very easily fit inside a single label, and instead keep it a requirement to create them as datasets (as a quick example, ENGMARK was created explicitly to be generic enough for future types of data. In theory if someone needed it, it can be easily extended to allow sending complete set of coordinates of shapes to engrave, in a single record. But with the line limit, suddenly for something that would work just fine in a single ENGMARK, you'll need to create a special new data set, to hold the exact same data.   And again, this is just an example, the same can happen in multiple other cases).

Posted

I don't have much meaningful preference one way or the other though I voted for 120 character lines.  I feel that is the least likely to cause any issues and solves the existing problem.  I do not like the concept of unlimited line length in general and I don't see that as providing any benefit and leaves too much room for impractical implementation.  I do not feel strongly about this, however, so my position will go with the majority.  I think valid reasoning is possible from both positions.  As for the one specific reason mentioned, I was merely pointing out one of the issues raised by members of the committee both during and after the meeting.  That's why there are three options instead of just two (keep or eliminate).

Archived

This topic is now archived and is closed to further replies.