roznica lezy w znaczeniu, ktore 'by' dostarcza wraz z kontekstem:
I will have [worked/been working] for the company for ten years by next year. (next year = 2021)
znaczy, ze
w 2020 minie 10 lata, jak zaczelas prace w tej firmie; innymi slowy, za zanim przyjdzie/zacznie sie rok 2021, bedziesz pracowala w tej firmie juz 10 lat; jak dalej tam posiedzisz, to wowczas bedziesz kiedys mogla powiedziec, ze w 2021 minie 11 lat w tej firmie
I will have [worked/been working] for the company for ten years next year. (next year = 2021)
znaczy, ze
dopiero w 2021 (moze w maju, moze w listopadzie, nie wiemy dokladnie)
minie okragla 10tka, jak zaczelas prace w tej firmie
I will have [worked/been working] for the company for ten years by next month. (next month = January 2021)
do konca grudnia tego roku wypadnie ci 10tka lat pracy; po grudniu 2020, a wiec w styczniu 2021, bedzie to juz powoli liczylo sie 11 lat
I will have [worked/been working] for the company for ten years next month. (next month = January 2021)
ktoregos dnia w styczniu 2021 minie 10tka lat pracy; po tym dniu w styczniu 2021 bedzie to juz powoli liczylo sie 11 lat